c语言if多层嵌套问题

设计一个上课前老师的提问程序
是否准备了 笔 纸 书本
程序如下:

以上程序只能执行一个if就退出了
请问错在哪里?
应该怎么改?

第9行和第10行加一个getchar(); 作用是捕获回车键
第10行和第11行也要加一个getchar();追问

"getchar(); 作用是捕获回车键"

为啥在这里要捕获回车键呢?
如果没有为什么不能继续运行下面的语句呢?

追答

因为你最好键入了回车呗,那么回车没有给answer,你说它去哪里了?
如果不加getchar捕获,不就给answer了嘛,你觉得answer能捕获回车吗?

追问

一个if之后answer内存会自动清空么?

追答

answer 是你在使用if语句之前定义的,如果是在if语句之内定义的话,answer 所占的内存会释放,你这个程序中的answer 在if语句循环一次不会释放。

answer 是你在使用if语句之前定义的,如果是在if语句之内定义的话,answer 所占的内存会释放,你这个程序中的answer 在if语句循环一次不会释放。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-26
里面的每个if后面匹配一个else就行
else{
printf("Go and get it");
break;}本回答被网友采纳
第2个回答  2015-01-26
你要清除下输入缓冲区
scanf("%*[^\n]");
scanf("%*c");
清下你的回车键
在你每个scanf后面追问

为什么要清理回车键呢?

追答

如果你不清的话输入缓冲区就会有不确定因素出来,怎么说呢,就像平白无故多出了个字符是\n,或者你第一行多输入了几个字符 那后面也会乱,如果清理之后就不会出现这个问题。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网