C语言:输入12345#后,写出下列程序的输出结果
答案:5 悬赏:70 手机版
解决时间 2021-02-11 13:46
- 提问者网友:未信
- 2021-02-11 09:25
C语言:输入12345#后,写出下列程序的输出结果
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-02-11 09:43
你会加断点吗?单步运行就可以看出来为什么了。
第一次循环开始的时候先执行c=getchar(),此时c=‘1’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘2’已经被读取且未输出;
第二次循环开始的时候先执行c=getchar(),此时c=‘3’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘4’已经被读取且未输出;
第三次循环开始的时候先执行c=getchar(),此时c=‘5’,因为此时getchar()==’#’不满足循环条件,所以未进行输出。
你想表达的意思应该是下面这样吧:
void main()
{
char c;
for(c=getchar(); c!='#'; c=getchar())
putchar(c);
return;
}
第一次循环开始的时候先执行c=getchar(),此时c=‘1’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘2’已经被读取且未输出;
第二次循环开始的时候先执行c=getchar(),此时c=‘3’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘4’已经被读取且未输出;
第三次循环开始的时候先执行c=getchar(),此时c=‘5’,因为此时getchar()==’#’不满足循环条件,所以未进行输出。
你想表达的意思应该是下面这样吧:
void main()
{
char c;
for(c=getchar(); c!='#'; c=getchar())
putchar(c);
return;
}
全部回答
- 1楼网友:人间朝暮
- 2021-02-11 13:06
同意1楼的。
- 2楼网友:旧脸谱
- 2021-02-11 12:58
我觉得这个答案是5吧,因为当输入‘#’时才会退出循环,而且之前的每getchar()一次,值就会覆盖之前的。
- 3楼网友:执傲
- 2021-02-11 11:58
同意楼上的观点!
- 4楼网友:山君与见山
- 2021-02-11 11:04
1输入到c
2做条件判断 可输出1
3输入到c
4做条件判断 可输出3
5输入到c
#做条件判断 不可输出5
2做条件判断 可输出1
3输入到c
4做条件判断 可输出3
5输入到c
#做条件判断 不可输出5
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯