来计算余下的贷款余额

问题描述:

我想在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); 
}  
+2

在一个有点相关的说明,[它是不使用浮动与金钱打交道时,点数学是最好的主意(http://*.com/q/3730019/274261) 。 – ArjunShankar

+0

在问题中询问是否找到小数点后的余额@ArjunShankar。我没有很好的编程技巧,我是初学者。这就是我面临这个困难的原因。 –

格式规范"%.2f"printf确定的,但不是scanf。仅使用"%f"

在你的程序中,所有的scanf函数调用失败。由于使用未初始化的变量,您只会看到未定义的行为。

在继续使用scanf存储结果的变量之前,请务必检查返回值scanf以确保操作成功。

使用

if (scanf("%f", &loan) != 1) 
{ 
    // Deal with error. 
}