是因为回车算一个字符吗,那怎么解决呢,求各位神仙帮忙解答,后面省略,,
2条回答 默认 最新
关注 【以下回答由 GPT 生成】
问题的原因是在输入完"是否喜欢体育锻炼?"之后,键盘输入缓冲区中仍然残留了一个回车符。当程序执行到"是否有良好的卫生饮食习惯?"时,该回车符会被作为输入读取,导致最后一个输入无法正常接收。
为了解决这个问题,可以在读取"是否有良好的卫生饮食习惯?"的输入之前,清空输入缓冲区。可以使用以下代码来清空输入缓冲区:
fflush(stdin);
修改后的代码如下:
#include<stdio.h> int main() { float faHeight, moHeight, h; char sex, sports, diet; printf("请输入是男性还是女性,男性输入M,女性输入F: "); scanf("%c", &sex); printf("请输入父亲身高: "); scanf("%f", &faHeight); printf("请输入母亲身高: "); scanf("%f", &moHeight); if (sex == 'M') { h = (faHeight + moHeight) * 0.54; } else { h = (faHeight * 0.923 + moHeight) / 2; } printf("是否喜欢体育锻炼? 喜欢输入Y,不喜欢输入N: "); scanf(" %c", &sports); if (sports == 'Y') { h = h * 0.02 + h; } fflush(stdin); // 清空输入缓冲区 printf("是否有良好的卫生饮食习惯? 有输入Y,没有输入N: "); scanf(" %c", &diet); if (diet == 'Y') { h = h * 0.015 + h; } printf("计算结果: %f", h); return 0; }
这样修改后,最后一个输入就能正常接收了。
【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7711270
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【课设作业】通讯录管理系统,还不知道怎么写课设的赶快来了
- 您还可以看一下 纪佳琪老师的机器学习之线性回归理论与代码实践课程中的 数据归一化,画直线图,画损失函数图小节, 巩固相关知识点
- 除此之外, 这篇博客: 【调试】打印函数栈,以及由函数指针输出函数名的方法中的 由函数指针得到函数名 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 求一位精通京东相关开发的专家
- ¥100 求懂行的大ge给小di解答下!
- ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
- ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
- ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
- ¥100 华为手机私有App后台保活
- ¥15 sqlserver中加密的密码字段查询问题
- ¥20 有谁能看看我coe文件到底哪儿有问题吗?
- ¥20 我的这个coe文件到底哪儿出问题了
- ¥15 matlab使用自定义函数时一直报错输入参数过多