字符加密(语言-c语言)

题目是这个样子的

img


这个是我写的代码

img


这个是运行出来的结果我不知道错哪里了

img


大家能不能分享一下自己的看法呀

加密前后的对应关系错了
你要知道 z 对应 A 怎么可能是 a[i]=a[i]-31,你这个只满足了a-y的范围

#include<stdio.h>
#include<string.h>
int main() {
    char a[1001];
    gets_s(a, 1000);
    for (int i = 0; a[i] != '\0'; ++i) {
        if (a[i] >= 'a' && a[i] <= 'z') {
            a[i] = (a[i] - 'a' + 1) % 26 + 'A';
        }
        else if (a[i] >= 'A' && a[i] <= 'Z') {
            a[i] = (a[i] - 'A' + 1) % 26 + 'a';
        }
    }
    for (int i = 0; a[i] != '\0'; ++i)
        printf("%c", a[i]);
}