为什么去掉getchar就会一直运行下去

#include<stdio.h>

#include<math.h>

int main()

{

char c;

c=getchar();

while(c!='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

{

if(c>='W'&&c<='Z'||c>='w'&&c<='z')

c=c-22;

else

c=c+4;

}

printf("%c",c);

c=getchar();

}

printf("\n");

return 0;

}


幕布斯7921344
浏览 1577回答 1
1回答

onemoo

代码中有两个getchar,你去掉的是哪一个??c在定义时没有赋予初值,那么它的初值是不确定的。 下一句调用getchar给c赋值,如果你去掉的是这一句的话,c的值仍是不确定的。while语句判断在c不等于'\n'时就循环运行,那么只要一开始c的值不是'\n'就会运行下去,while中可能会更改c值(减去22或加上4),但只要c值不是'\n',循环就不会结束。while循环体最后也调用了一次getchar,如果你把这个也去掉了,就无法给c赋予新值了,那么循环就会按照上面的描述一致运行下去,直到c的值刚好变为'\n'还有一点,你在最开始include了math.h头文件,但似乎并没有用到它。
打开App,查看更多内容
随时随地看视频慕课网APP