还款=(贷款/还款期限)+(贷款-已还款)*年利率
/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:某银行为购房者提供住房按揭贷款,年利率为5.733%,还款期限为5年,编写一个函数实现如下还款:
贷款总额(单位:万元)手动输入,每年等额本金偿还,计算每年还款额,注意第五年只还本金。
程序输入输出如下:
输入贷款总额(万元): 56
第 1年: 还款额 = 14.41万元
第 2年: 还款额 = 13.77万元
第 3年: 还款额 = 13.13万元
第 4年: 还款额 = 12.48万元
第 5年: 还款额 = 11.20万元
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,在函数中根据自己的习惯定义变量名。
------------------------------------------------------------------------*/
#include <stdio.h>
#define RATE 5.733 / 100.0 // 将年利率转换为小数形式
#define TERM_YEARS 5 // 还款期限(年)
void calculateYearlyPayment(double loanAmountInTenThousand) {
//loanAmountInTenThousand总贷款
/**********Program**********/
int i;
double s;
for(i=1;i<=TERM_YEARS;i++)
{
if(i==TERM_YEARS)
{
s=loanAmountInTenThousand/TERM_YEARS;
printf("第 %d年: 还款额 = %.2f万元\n",i,s);
}
else
{
s=loanAmountInTenThousand/TERM_YEARS+((loanAmountInTenThousand-loanAmountInTenThousand/TERM_YEARS*(i-1))*RATE);
printf("第 %d年: 还款额 = %.2f万元\n",i,s);
}
}
/********** End **********/
}
int main() {
double loanAmountInTenThousand;
printf("【输入贷款总额(万元):】 ");
scanf("%lf", &loanAmountInTenThousand);
printf("【还款明细如下:】\n");
calculateYearlyPayment(loanAmountInTenThousand);
return 0;
}
这个程序实现了按照年等额本金偿还贷款的功能,根据输入的贷款总额(单位:万元)计算每年的还款额,并输出还款明细。
在calculateYearlyPayment函数中,使用循环计算每一年的还款额。在循环中,当年的还款额包括贷款总额除以还款期限,以及剩余未归还部分乘以年利率。在最后一年,只还本金部分,不再加上利息部分。
在主函数main中,用户输入贷款总额,然后调用calculateYearlyPayment函数计算并输出每年的还款额明细。
最终,根据用户输入的贷款总额,程序会计算并输出按年等额本金偿还贷款的还款明细。