来计算余下的贷款余额
问题描述:
我想在C编写一个程序来计算第一次,第二次&第三次月度支付后的剩余余额,给定的贷款,每月支付金额和利率。我在输入输入时遇到问题(浮点数),即只需要一个输入(贷款)&显示答案,而不考虑其他2个输入(利率&每月支付)。来计算余下的贷款余额
只有当我使用浮点数(甚至在其他程序中)时才会出现此问题。我想问问这是由于编码还是由于其他原因。
我的代码如下:
#include<stdio.h>
main()
{
float loan,interest,monthly_payment;
float balance_Imonth,balance_IImonth,balance_IIImonth;
printf("Enter the amount of loan: ");
scanf("%.2f",&loan);
printf("Enter the amount of interest: ");
scanf("%.2f",&interest);
printf("Enter the amount of monthly payment: ");
scanf("%.2f",&monthly_payment);
balance_Imonth=((interest/(100*12))*loan)+(loan)-(monthly_payment);
balance_IImonth=((interest/(100*12))*loan)+(balance_Imonth)- (monthly_payment);
balance_IIImonth=((interest/(100*12))*loan)+(balance_IImonth)-(monthly_payment);
printf("Balance remaining after I payment: $%.2f\n",balance_Imonth);
printf("Balance remaining after II payment: $%.2f\n",balance_IImonth);
printf("Balance remaining after III payment: $%.2f\n",balance_IIImonth);
}
答
格式规范"%.2f"
是printf
确定的,但不是scanf
。仅使用"%f"
。
在你的程序中,所有的scanf
函数调用失败。由于使用未初始化的变量,您只会看到未定义的行为。
在继续使用scanf
存储结果的变量之前,请务必检查返回值scanf
以确保操作成功。
使用
if (scanf("%f", &loan) != 1)
{
// Deal with error.
}
在一个有点相关的说明,[它是不使用浮动与金钱打交道时,点数学是最好的主意(http://*.com/q/3730019/274261) 。 – ArjunShankar
在问题中询问是否找到小数点后的余额@ArjunShankar。我没有很好的编程技巧,我是初学者。这就是我面临这个困难的原因。 –