C语言编程题,求解题思路!

等额本金和等额本息是当前贷款还款的主要形式,其中等额本金还款是指借款人每月等额偿还本金,贷款利息随本金逐月递减,还款额也逐月递减。
等额本金还款计算公式:
每月还款金额 = (贷款本金 / 还款月数) + (本金 - 已归还本金累计额) × 每月利率。
现给定某客户的贷款本金(P,单位为元)、贷款期数(N,单位为月)和每月利率(R),请计算该客户每个月的还款金额(精确到小数点后两位,四舍五入)。

【例子】
输入:(自测输入格式:1000000;7;0.003959)
P = 1,000,000
N = 7
R = 0.003959
输出:[146816.14, 146250.57, 145685.0, 145119.43, 144553.86, 143988.29, 143422.71]

只要按照公式计算每月还款金额就可以了,其中"已归还本金累计额"等于"贷款本金 除以 还款月数 乘以 已还款月数".

按照题目要求编写的等额本金还款的C语言程序如下

#include<stdio.h>

int main(){

 double P,R,repayment;

 int N,i;

 scanf("%lf;%d;%lf",&P,&N,&R);

 printf("[");

 for(i=0;i<N;i++){

  repayment=(P/N)+(P-P/N*i)*R;

  if(i==N-1)

   printf("%.2lf]",repayment);

  else

   printf("%.2lf,",repayment);

 }

 return 0;

}

追问

谢谢!大神厉害啊,连中括号都分这么细!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-07
#include <stdlib.h>
#include <stdio.h>
int main()
{
int P, N;
double R;
printf("input data: ");
scanf("%d;%d;%lf", &P, &N, &R);
printf("P = %d\n", P);
printf("N = %d\n", N);
printf("R = %0.6f\n", R);

double avg = (double)P / N;
double ret = 0;

printf("[");

for (size_t i = 0; i < N; ++i)
{
double money = avg + (P - ret) * R;
ret += avg;

printf("%.2f", money);
if (i < N - 1)
printf(", ");
}
printf("]\n");

return 0;
}
相似回答