#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头文件,但似乎并没有用到它。
- 1 回答
- 0 关注
- 1576 浏览
添加回答
举报
0/150
提交
取消