为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
幕布斯7921344 2015-11-05 16:41:27
#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;}
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

代码中有两个getchar,你去掉的是哪一个??

c在定义时没有赋予初值,那么它的初值是不确定的。 下一句调用getchar给c赋值,如果你去掉的是这一句的话,c的值仍是不确定的。

while语句判断在c不等于'\n'时就循环运行,那么只要一开始c的值不是'\n'就会运行下去,while中可能会更改c值(减去22或加上4),但只要c值不是'\n',循环就不会结束。

while循环体最后也调用了一次getchar,如果你把这个也去掉了,就无法给c赋予新值了,那么循环就会按照上面的描述一致运行下去,直到c的值刚好变为'\n'


还有一点,你在最开始include了math.h头文件,但似乎并没有用到它。

查看完整回答
反对 回复 2015-11-05
  • 1 回答
  • 0 关注
  • 1576 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信