2301_79364069 2023-10-29 15:16 采纳率: 75%
浏览 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日
  • 展开全部

悬赏问题

  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥50 vue router 动态路由问题