关于c中的减号运算我遇到了一些问题。
printf("\nPlease enter your payment:\n", userpayment);
scanf("%.2f", &userpayment);
customerchange = userpayment - totalfinal;
printf("The amount of change is %.2f\n", customerchange);我将userpayment和totalfinal声明为double。
每当我输入价格,例如,userpayment = 2000和totalfinal是1500,输出总是1500。这个问题的解决方案是什么?
这是输出:
输入项目价格: 500输入项目数量:3付款总额为: RM1500.00这是最后一项吗?Y Rm50已向客户提供现金回扣。返现前支付合计: 1500返现后支付合计1450
请输入您的付款:14500.00找您的零钱是RM- 5000
发布于 2016-03-31 23:21:36
如果"userpayment“被定义为双精度,则更改
scanf("%.2f", &userpayment);至
scanf("%lf", &userpayment);或者将变量改为浮点数。
现在,您正在将一个浮点数扫描到双精度值的内存中,从而导致不可预知的行为。
发布于 2016-03-31 23:23:11
scanf中的格式说明符不正确。请阅读文档。
http://www.cplusplus.com/reference/cstdio/scanf/
您还应该检查scanf的返回值,以确保它能够解析您期望它解析的内容。
此外,如果您阅读了编译器警告,就可以省去问这个问题的麻烦。
发布于 2016-03-31 23:29:18
你混淆了%lf的格式,它相似但不相同,试着把printf替换成printf
https://stackoverflow.com/questions/36337351
复制相似问题