题目描述

有一行电文,已按如下规律译成密码:

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 }

不知道为什么,这个答案一直被判错,在网上找的其他解答也被判答案错误……不知道为什么,先记录在这,如果有大神知道求指导一下!

posted on 2019-06-26 10:21  Narnianemo  阅读(179)  评论(0)    收藏  举报