#include <stdio.h>
int main()
{
double x, t, r, m, year;
scanf("%lf %lf", &x, &t);
if (t <= 20)
{
if (x<5)
r = 0.03;
else if (x>=5 && x<20)
r = 0.035;
else if (x>=20 && x<50)
r = 0.04;
else if (x>=50 && x<200)
r = 0.045;
else if (x>=200)
r = 0.05;
for (year=0, m=x; year<t; year++)
m = m+m*r;
}
else
{
if (x<5)
r = 0.03;
else if (x>=5 && x<20)
r = 0.035;
else if (x>=20 && x<50)
r = 0.04;
else if (x>=50 && x<200)
r = 0.045;
else if (x>=200)
r = 0.05;
for (year=0, m=x; year<20; year++) //yeae<20而非<=20是因为year是从0开始计数的
m = m+m*r;
}
printf("%.2lf\n", m);
return 0;
}
问题描述
某银行理财产品采用年结复利方式计算收益,也即一年结算一次,且下一年本金为上一年的本息和,年利率与本金x相关,具体如下:
本金x小于5万,年利率为3%;
5万<=x<20万,年利率为3.5%;
20万<=x<50万,年利率为4%;
50万<=x<200万,年利率为4.5%;
本金200万以上,年利率为5%。
所有理财产品持有期超过20年,不再计入利息。
输入格式
输入第一行包含两个数,分别为本金x和持有年限t,以空格分隔。
输出格式
输出本息和(即本金与利息之和),保留2位有效数字。
样例输入
5 2
样例输出
5.36
以上是学校oj上的题目和我的C语言代码,但是只得了80分,请问哪里有问题T^T