2301_79364069 2023-10-29 15:16 采纳率: 82.4%
浏览 1
已结题

这两个代码有什么不同 为什么输出的结果不一样

img

求解 为什么输入234000 switch输出为19200 而if输出的却为20050

img

  • 写回答

2条回答 默认 最新

  • 想要AC的dly 2023-10-29 15:41
    关注

    不能使用连续比较:1<I<5这种写法

    #include <stdio.h>
    int main() {
        float bonus,I;
    //    printf("请输入当月利润:");
        scanf("%f",&I);
        switch ((int) I / 100000) {
            case 0:
                bonus = I * 0.1;
                break;
            case 1:
                bonus = 0.1 * 100000 + 0.075 * (I - 100000);
                break;
            case 2:
            case 3:
                bonus = 0.1 * 100000 + 0.075 * 100000 + 0.05 * (I - 200000);
                break;
            case 4:
            case 5:
                bonus = 0.1 * 100000 + .075 * 100000 + 0.05 * 200000 + 0.03 * (I - 400000);
                break;
            case 6:
            case 7:
                bonus = 0.1 * 100000 + 0.075 * 100000 + 0.05 * 200000 + 0.03 * 200000 + 0.015 * (I - 600000);
                break;
            case 8:
            case 9:
            case 10:
                bonus = 0.1 * 100000 + 0.075 * 100000 + 0.05 * 200000 + 0.03 * 200000 + 0.015 * 400000 + 0.01 * (I - 1000000);
        }
        printf("%5.2lf", bonus);
        return 0;
    }
    

    #include <stdio.h>
    int main()
    {
        double I,a;
        scanf("%lf",&I);
        if(I<=100000)a=0.1*I;
        else if(100000<I&&I<=200000)
            a=0.1*100000+0.075*(I-100000);
        else if(200000<I&&I<=400000)
            a=0.1*100000+0.075*100000+0.05*(I-200000);
        else if(400000<I&&I<=600000)
            a=0.1*100000+0.075*100000+0.05*200000+0.03*(I-400000);
        else if(600000<I&&I<=1000000)
            a=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*(I-600000);
        else if(I>1000000)
            a=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(I-1000000);
        printf("%5.2f",a);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 修改了问题 10月29日
  • 请提交代码 10月29日
  • 展开全部

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分 合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备