字母前驱和后驱及前后驱的ASCII值,How to solve?纠个错呗

img

img

img


情况就是这样,样例1和3都是正确的,但是样例2不知道错在哪,有没有可以解答一下的,

你为什么要判断b=='b'
只有a和z才需要特殊处理呀,何况你还赋值错了,b=='b',c应该=‘c’呀
第10行也是错的
如果b=='a'或'A',那么c=b+1是对的,不要改c
反过来z也一样,那a就是对的,要处理的是c,乱改反而改错了

#include <stdio.h>

int main() {
    char char1, char2, char3;
    scanf("%c", &char1);
    if (char1=='a')
    {
        char2 = 'z';
        char3 = char1 + 1;
    }
    else if (char1 == 'A')
    {
        char2 = 'Z';
        char3 = char1 + 1;
    }
    else if (char1 == 'z')
    {
        char2 = char1 - 1;
        char3 = 'a';
    }
    else if (char1 == 'Z')
    {
        char2 = char1 - 1;
        char3 = 'A';
    }
    else{
        char2 = char1 - 1;
        char3 = char1 + 1;
    }
    printf("%c %d\n", char2, char2);
    printf("%c %d", char3, char3);
}

img