m0_53355897
2021-05-13 20:58
采纳率: 100%
浏览 139

麻烦大佬们帮我看看这道题的问题

问问大佬们我的代码哪里有问题,输入3000数据是对的,但是输入2000数据是错的

#include<stdio.h>
int main()
{
    int m;
    while(scanf("%d",&m)!=EOF)
    {
        double sum=m; 
        for(int i=47;i>0;i--)
        {
            sum= (sum+m)/(1 + 0.0171/12);
        } 
        printf("%.2lf\n",sum);
    }
    return 0;
}

原题是这样:

题目描述

父母为儿子大学四年生活费存了一笔钱,方式是整存零取, 规定儿子每月月底取走下月的生活费 M 元。现在假设银行的年利率是 1.71%,现在计算母亲至少存多少钱?(保留 2 位小数)

输入描述

多组输入,每组一个整数 M,代表每月的生活费。

输出描述

父母亲一次性要存入的生活费(保留 2 位小数)

样例输入

3000

2000

样例输出

139089.86

92726.58

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • 最佳回答

    你最后一个月sum=m是直接赋值给sum了,没有算利息。

    你输入3000数据是139093.86也不对, 

    样例输出是 139089.86

    正确应该是:

    #include<stdio.h>
    int main()
    {
        int m;
        while(scanf("%d",&m)!=EOF)
        {
            double sum=0;
            for(int i=48;i>0;i--)
            {
                sum= (sum+m)/(1 + 0.0171/12);
            }
            printf("%.2lf\n",sum);
        }
        return 0;
    }

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题