首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scanf不能重复读取

scanf不能重复读取
EN

Stack Overflow用户
提问于 2016-03-31 23:13:48
回答 4查看 296关注 0票数 0

关于c中的减号运算我遇到了一些问题。

代码语言:javascript
复制
printf("\nPlease enter your payment:\n", userpayment);
scanf("%.2f", &userpayment);

customerchange = userpayment - totalfinal;
printf("The amount of change is %.2f\n", customerchange);

我将userpaymenttotalfinal声明为double

每当我输入价格,例如,userpayment = 2000totalfinal是1500,输出总是1500。这个问题的解决方案是什么?

这是输出:

输入项目价格: 500输入项目数量:3付款总额为: RM1500.00这是最后一项吗?Y Rm50已向客户提供现金回扣。返现前支付合计: 1500返现后支付合计1450

请输入您的付款:14500.00找您的零钱是RM- 5000

EN

回答 4

Stack Overflow用户

发布于 2016-03-31 23:21:36

如果"userpayment“被定义为双精度,则更改

代码语言:javascript
复制
scanf("%.2f", &userpayment);

代码语言:javascript
复制
scanf("%lf", &userpayment);

或者将变量改为浮点数。

现在,您正在将一个浮点数扫描到双精度值的内存中,从而导致不可预知的行为。

票数 5
EN

Stack Overflow用户

发布于 2016-03-31 23:23:11

scanf中的格式说明符不正确。请阅读文档。

http://www.cplusplus.com/reference/cstdio/scanf/

您还应该检查scanf的返回值,以确保它能够解析您期望它解析的内容。

此外,如果您阅读了编译器警告,就可以省去问这个问题的麻烦。

票数 2
EN

Stack Overflow用户

发布于 2016-03-31 23:29:18

你混淆了%lf的格式,它相似但不相同,试着把printf替换成printf

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36337351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档