设计一个上课前老师的提问程序
是否准备了 笔 纸 书本
程序如下:
以上程序只能执行一个if就退出了
请问错在哪里?
应该怎么改?
第9行和第10行加一个getchar(); 作用是捕获回车键
第10行和第11行也要加一个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;}本回答被网友采纳
else{
printf("Go and get it");
break;}本回答被网友采纳
第2个回答 2015-01-26
你要清除下输入缓冲区
scanf("%*[^\n]");
scanf("%*c");
清下你的回车键
在你每个scanf后面追问
scanf("%*[^\n]");
scanf("%*c");
清下你的回车键
在你每个scanf后面追问
为什么要清理回车键呢?
追答如果你不清的话输入缓冲区就会有不确定因素出来,怎么说呢,就像平白无故多出了个字符是\n,或者你第一行多输入了几个字符 那后面也会乱,如果清理之后就不会出现这个问题。