panic!!大一,c语言选择结构题,提交显示编译正常,答案错误,但是我找不出来问题,同学也不知道咋回事

这是题目和我的提交结果

img

img

这个是我的代码
#include
main()
{
    char m;
    m=getchar();
    if(m==97||m==65)
    {printf("z 122\n");
     printf("b 98\n");}
    else
         if(m==122||m==90)
         {printf("y 121\n");
          printf("a 97\n");}
         else
            if(m>97&&m!=122)
            {printf("%c %d\n",m-1,m-1);
             printf("%c %d\n",m+1,m+1);}
             else
                if(m<96&&m!=90&&m!=65)
             {printf("%c %d\n",m+31,m+31);
              printf("%c %d",m+33,m+33);}
}

下面是我同学写的,他这个答案正确,我寻思我的程序应该也是符合题目要求的啊,求指教,如果能指出我的问题,那就真的真的太感谢了,谢谢!谢谢!

#include 
#include 

int main()
{
    char c1;
    c1=getchar();
    if(c1==97||c1==65)
    {
        c1=c1+26,
        printf("%c %d\n",c1-1,c1-1),
        printf("%c %d\n",c1-25,c1-25);
    }
    else printf("%c %d\n",c1-1,c1-1);
    if(c1==122||c1==90)
    {
        c1=c1-26,
        printf("%c %d\n",c1+1,c1+1);
    }
    if(c1!=123&&c1!=96&&c1!=64&&c1!=91)
    printf("%c %d\n",c1+1,c1+1);
    return 0;
}


你第一个就有问题,如果是A或者a,你却都是输出A的前驱后后驱,a的情况你却没有给出来。