不知道为什么,在运行到给cChar赋值的时候,步骤跳过去了。
我发现,我的问题好像都是你回答的呢,非常感谢。感觉你好厉害,我也要加油。
用户输入数量之后的回车键 'n' , 也是一个字符。应当调用 getchar() 将这个字符 'n' "吃掉"。这样才能顺利地进行下一步。将楼主的代码修改如下:
#include <stdio.h> int main(){ float fDues; float fAmount; int iOntime; char cChar; printf("输入数量(金额):n"); scanf("%f",&fDues); getchar(); printf("是否及时在时间内?(y/n)n"); scanf("%c", &cChar); iOntime = (cChar=='y')? 1:0; if (iOntime==1) printf("The amout due is : %10.2fn",fDues); else printf("超时n"); return 0; }
输出:
输入数量(金额): 312.55 是否及时在时间内?(y/n) y The amout due is : 312.55
注意:清空键盘缓冲区,也可以用:fflush(stdin); /*清空缓冲区,也可以使用rewind(stdin);*/
参考:
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
我发现,我的问题好像都是你回答的呢,非常感谢。感觉你好厉害,我也要加油。
用户输入数量之后的回车键 'n' , 也是一个字符。应当调用 getchar() 将这个字符 'n' "吃掉"。这样才能顺利地进行下一步。
将楼主的代码修改如下:
输出:
注意:清空键盘缓冲区,也可以用:fflush(stdin); /*清空缓冲区,也可以使用rewind(stdin);*/
参考:
C语言编程 - 清空键盘缓冲区