关于C语言一道题帮我看看,哪错了?
输入一个字母,如果它是小写字母,则首先将其转换成大写字母,在输出该字母的前序字母、该字母、该字母的后续字母。如输入a,则输出ZAB.如输入Z,则输出YZA.输入g,则输出FGH. #include <stdio.h>
main()
{ char ch,c1,c2;
printf("Enter a character:");
ch=getchar();
if((ch>'a')&&(ch<'z')) {ch-=32;c1=ch-1;c2=ch+1;}
else if((ch>'A')&&(ch<'Z')) {c1=ch-1;c2=ch+1;}
else if(ch='a') {ch-=32;c1=ch+25;c2=ch+1;}
else if(ch='A') {c1=ch+25;c2=ch+1;}
else if(ch='z') {ch-=32;c1=ch-1;c2=ch-25;}
else if(ch='Z') {c1=ch-1;c2=ch-25;}
else {printf("unknown operator\n");}
putchar(c1);
putchar(ch);
putchar(c2);
putchar('\n');
}
我变成这样,就Z,z输出来有问题输出来是ZAB??哪错了。还有输入的如果不是字母,输出的也有问题??