求解c primer plus第六版9.11里面第七题 我这个不管输入的是不是字母都是-1

编写程序,使其从标准输入读取字符,直至文件结尾。对每个字符,程序需检查是否为字母,若是报告在字母表中的位置,如C和c均为3.若不是字母,位置置为3
#include
#include
void letter(char ch);
int main()
{
char ch;
while(ch=getchar()!=EOF)
letter(ch);
}
void letter(char ch)
{
if(ch>='a'&&ch<='z')
printf("%d ",ch-'a');
else if (ch>='A'&&ch<='Z')
printf("%d ",ch-'A');
else
printf("%d",-1);
}
图片说明

c

2个回答

改为while((ch=getchar())!=EOF)

ranyixu11
doggy_coder 不然是先计算getchar()!=EOF的值,然后赋值给ch
接近 2 年之前 回复

哦哦 改过来就是对的了 谢谢
但是这个原因是什么啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!