请教个简单的C程序。感谢回答!

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:12:15
题目要求:输入一个小写字母,输出其本身和其前、后续字母的大写形式。
我是这样写的:
#include"stdio.h"
void main()
{
char c;
c=getchar();
if (c>'a' && c<'z')
printf("%c %C %C\n",c-32,c-31,c-33);
else if(c='a')
printf("%c %c %c\n",c-32,c-31);
else if(c='z')
printf("%c %c %c\n",c-32,c-33);
else
printf("error");
}
这个程序可能存在一些语法上的错误,不过我运行的程序已经编译通过了。出现的问题就是我输入a-y任意小写字母,或者其他不是小写字母的,程序都可正常运行,唯独输入z时,程序输出大写的A、B,咋回事啊?谢谢您的回答!
我将原题中的a z都换成了97和122 结果还是一样啊 输入z时,还是输出A B

用ASCII码判断:
#include "stdio.h"
main()
{char c;
c=getchar();
if(c>=97&&c<=122) /*如果C是小写字母,用ASCII码来判断*/
c=c-32;
printf("%c\n",c);
getch();
};

既然你已经用到了特判,那么就将特判进行到底吧。。
如果是z的话直接输出Z和Y吧