有一行电文,已按下面规律译成密码:
A-->Z a--->z
B--->Y b--->y
...
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
#include <stdio.h> int main(){ char str[10]; int i,m,n; gets(str); printf("密码:\n"); for(i=0; i<10; i++){ printf("%3c",str[i]); } printf("\n"); //将密码转换为原文 for(i=0; i<10; i++){ if(str[i]>=65&&str[i]<=90){ m=str[i]-64; n=26-m+1; str[i]=64+n; } else if(str[i]>=97 && str[i]<=122){ m=str[i]-96; n=26-m+1; str[i]=96+n; } } printf("原文:\n"); for(i=0; i<10; i++){ printf("%3c",str[i]); } printf("\n");}
时间: 2024-11-10 11:13:56