求解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);
}
图片说明

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

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