大一的,来这儿求解答,

img

img


来来来


#include "stdio.h"
void main()
{
    /*
        电子书7.12
        
    */
    char str[20];
    int i,j,k,s;
    printf("请输入一行字符:\n");
    gets(str);
    k = strlen(str);
    for(i=0;i<k;i++)
    {
        if(str[i]>='a' && str[i]<='z'){
            s= 25-(str[i]-97);
            str[i] = 'a'+s;//密文    
        }
        if(str[i]>='A' && str[i]<='Z'){
            s= 25-(str[i]-65);
            str[i] = 'A'+s;//密文    
        }
    }
    //加密后的内容
    puts(str);
    //解密
    for(i=0;i<k;i++){
        if(str[i]>='a' && str[i]<='z'){
            s= str[i]-97;
            str[i] = 'z'-s;//密文    
        }
        if(str[i]>='A' && str[i]<='Z'){
            s= str[i]-65;
            str[i] = 'Z'-s;//密文    
        }
    }
    puts(str);
}

那就是反过来呗,第26个字母换成第一个字母

#include <stdio.h>
int main()
{
    char s[100];
    char r[100]={0};
    int i=0;
    gets(s);
    while(s[i] != '\0')
    {
        if(s[i] >='A' && s[i] <='Z')
        {
            r[i] = 'A' + 27-(s[i]-'A');
        }
      else  if(s[i] >='a' && s[i] <='z')
        {
            r[i] = 'a' + 27-(s[i]-'a');
        }

        i++;
    }
    printf("%s\n%s",s,r);
    return 0;
}