程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 1006 Do the Untwist,1006dotheuntwist

1006 Do the Untwist,1006dotheuntwist

編輯:關於C語言

1006 Do the Untwist,1006dotheuntwist


考察編程基礎知識,用到字符和數字相互轉化等。形式是描述清楚明文和暗文的轉化規則。

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 #define MAXLEN 71
 5 
 6 int length;
 7 
 8 void toCode(int code[],char text[]){
 9     int i;
10     for(i=0;i<length;i++){
11         if(text[i] == '_')
12             code[i] = 0;
13         else if(text[i] == '.')
14                 code[i] = 27;
15             else
16                 code[i] = text[i] - 96;
17     }
18 }
19 
20 void toText(char text[],int code[]){
21     int i;
22     for(i=0;i<length;i++){
23         if(code[i] == 0)
24             text[i] = '_';
25         else if(code[i] == 27)
26                 text[i] = '.';
27             else
28                 text[i] = code[i] + 96;
29     }
30     text[i] = 0;
31 }
32 
33 int inRange(int n){
34     if(n>=0&&n<=27)
35         return 1;
36     return 0;
37 }
38 
39 void untwist(char textC[],int k){
40     int i,j;
41     int codeC[MAXLEN],codeP[MAXLEN];
42     char textP[MAXLEN];
43 
44     toCode(codeC,textC);
45     for(i=0;i<length;i++){
46         j = (k*i)%length;
47         if(inRange(codeC[i] + i)) 
48             codeP[j] = codeC[i] + i;
49         else if(inRange(codeC[i] + i - 28)) 
50                 codeP[j] = codeC[i] + i - 28;
51             else if(inRange(codeC[i] + i - 56)) 
52                     codeP[j] = codeC[i] + i - 56;
53                 else if(inRange(codeC[i] + i - 84)) 
54                         codeP[j] = codeC[i] + i - 84;
55     }
56     toText(textP,codeP);
57     printf("%s\n",textP);
58 }
59 
60 int main(){
61     int k;
62     char textC[MAXLEN];
63     while(scanf("%d",&k)&&k){
64         scanf("%s",textC);
65         length = strlen(textC);
66         untwist(textC,k);
67     }
68     return 0;
69 }

 


C語言編程們,懇你們幫忙解題

非常簡單的加密解密方式,類似替換法.不過不是直接替換.
但不知道那個超級sb非得用鳥文寫,有的單詞好象寫錯了.
 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved