隔壁王健喜儿 2022-10-12 20:01 采纳率: 96%
浏览 71
已结题

关于#理财收益C语言的问题


#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

  • 写回答

1条回答 默认 最新

  • Ubabi_? 2022-10-12 20:35
    关注

    举个例子叭,比如说我本金为4.9万,那么我第一年的本息和就超过5万了,那么第二年开始利率就应该为3.5,你的代码中并没有考虑这种因为利息导致本金超过当前利率档位的情况

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析