余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日

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP