项目场景:
计算银行存款的本息。输入存款金额money、存期year、年利率rate,根据下列公式计算存款到期时的本息合计sum(税前),输出时保留两位小数。
问题描述:
在程序编写完成后,编译并没有出错,但是在运行程序时得到的结果却是错误的,出现了逻辑错误。本息一直等于原来输入的本金(也就是sum等于money)。
源代码:
#include<stdio.h>
#include<math.h>
int main(){
float money,rate,sum;
int year;
printf("Please input money,year,rate\n");
scanf("%f,%d,%f",&money,&year,&rate);
sum = money*pow(1+rate,year);
printf("sum=%.2f\n",sum);
return 0;
}
数据1:
数据2:

原因分析:
原来是在控制台中输入的时候使用了中文的逗号,使得年利率rate始终等于0,而存期year始终等于4,所以最终的结果sum就没有发生变化。
调试1:

调试2:


解决方案:
将控制台输入的中文逗号改为英文逗号结果就正常了。

1801

被折叠的 条评论
为什么被折叠?



