编程题:有一行电文,已按下面规律译成密码:A->Z B->Y C->X ...

a->z b->y c->x ..即第一个字母编成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。编程输出密码和原文。

#include "stdio.h"

#include "string.h"

void main()

{

    //printf("%d,%d,%d,%d\n",'A','Z','a','z');

    int i;

    char s1[50],s2[50];//定义长度为50的字符串数组分别用于存储密文和原文

    printf("请输入密文:");

    scanf("%s",s1);//接收用户输入的密文

    for(i=0;i<strlen(s1);i++)

    {

     if(s1[i]>=65&&s1[i]<=90)//根据ASCII值判断是否是大写字母

     {

      s2[i]=((s1[i]-65)+25)%26+65;//将大写字母变为其后面的第25个

     }

     else if(s1[i]>=97&&s1[i]<=122)//根据ASCII值判断是否是小写字母

     {

      s2[i]=((s1[i]-97)+25)%26+97;////将小写字母变为其后面的第25个

     }

     else

     {

      s2[i]=s1[i];//不是字母的保持不变

     }

    }

    printf("%s",s2);//输出原文

}

运行结果:

编程题:密电码译回原文  _c语言