题目描述
有一行电文,已按如下规律译成密码:
A-->Z a-->z
B-->Y b-->y
C-->X c-->x
...... ......
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
输入
输入一行密文
输出
解密后的原文,单独占一行。
样例输入
ZYX123zyx
样例输出
ABC123abc
我的解答如下:
1 #include<stdio.h> 2 #define N 100 3 int main(){ 4 char P[N]; 5 int num, j=0; 6 gets(P); 7 while(P[j] != '\0'){ 8 if(('A' <= P[j]) && (P[j] <= 'Z')){ 9 P[j] = 155 - P[j]; 10 }else if(('a' <= P[j]) && (P[j]<= 'z')){ 11 P[j] = 219 - P[j]; 12 } 13 j++; 14 } 15 num = j; 16 for(int i = 0; i <= num; i++){ 17 printf("%c", P[i]); 18 } 19 printf("\n"); 20 return 0;
21 }
不知道为什么,这个答案一直被判错,在网上找的其他解答也被判答案错误……不知道为什么,先记录在这,如果有大神知道求指导一下!
浙公网安备 33010602011771号