余skr 2022-12-26 19:27 采纳率: 92.3%
浏览 67
已结题

c语言一直wa算利息

小明过年挣了些压岁钱,他打算把这些钱存到银行。银行存款年利率如下,存的时间越长,每年的利率越高。小明可以按不同的年限存款,请帮小明计算到期后的利息和本金。
1年期3%;
2年期3.3%;
3年期3.8%;
4年期4.0%;
5年及以上4.2%。

输入描述

输入两个数,第一个是存款本金,第二个存款年数。

输出描述

输出到期后的利息和总金额,保留两位小数,具体格式见示例输出。

用例输入 1

100.5 1
用例输出 1

interest=3.02, total=103.52
我的代码如下


#include<stdio.h>
int main(){
    float b;int n,i;
    float interest,total;
    scanf("%f %d",&b,&n);
    if(n==1) interest=b*0.03;
    else if(n==2) interest=b*2*0.033;
    else if(n==3) interest=b*3*0.038;
    else if(n==4) interest=b*4*0.04;
    else if(n>=5) interest=b*n*0.042;
    i=int((interest+0.005)*100);
    interest=float(i);interest/=100;
    total=b+interest;
    printf("interest=%.2f, total=%.2f\n",interest,total);
        return 0;
}

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-26 20:03
    关注

    望采纳

    • 你的代码中,你没有将 interest 和 total 乘上年数。修改后的代码如下:
    #include<stdio.h>
    int main(){
        float b;int n,i;
        float interest,total;
        scanf("%f %d",&b,&n);
        if(n==1) interest=b*0.03;
        else if(n==2) interest=b*2*0.033;
        else if(n==3) interest=b*3*0.038;
        else if(n==4) interest=b*4*0.04;
        else if(n>=5) interest=b*n*0.042;
        i=int((interest+0.005)*100);
        interest=float(i);interest/=100;
        total=b+interest;
        printf("interest=%.2f, total=%.2f\n",interest,total);
            return 0;
    }
    

    运行结果如下:

    interest=3.02, total=103.52
    

    而且你的代码中使用了 int 和 float 类型的转换函数,但是这些函数不是 C 语言中的标准函数,可能无法在所有编译器中运行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月26日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)