feiling4 2021-08-03 19:24 采纳率: 33.3%
浏览 79
已结题

C语言的if else if判断,只会执行前面两个,后面的else if,不会执行,不论I输入为多少

/企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提
   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
   100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
/


#include<stdio.h>
#include<stdlib.h>

double  I, j, k, JJ;

 main()
{
    printf("请输入当月利润(单位万元)\n");
    scanf_s("%lf", &I);
    if (I <= 10)
    {
        JJ = I * 0.1;
        printf("应发奖金数为%f\n", JJ);
    }

    else if (10 < I <= 20)
    {
        j = (I - 10) * 0.075;
        JJ = j + 10 * 0.1;
        printf("应发奖金数为%f\n", JJ);
    }

    else if (20 < I <= 40)
    {
        j = (I - 20) * 0.075;
        k = 20 * 0.05;
        JJ = j + k;
        printf("应发奖金数为%f\n", JJ);
    }

    else if (40 < I <= 60)
    {
        j = (I - 40) * 0.015;
        k = 40 * 0.03;
        JJ = j + k;
        printf("应发奖金数为%f\n", JJ);
    }

    else if (60 < I <= 100)
    {
        j = (I - 60) * 0.015;
        k = 60 * 0.03;
        JJ = j + k;
        printf("应发奖金数为%f\n", JJ);
    }

    else (100 < I);
    {
        j = (I - 100) * 0.01;
        k = 100 * 0.015;
        JJ = j + k;
        printf("应发奖金数为%f\n", JJ);
    }
    
}


  • 写回答

3条回答 默认 最新

  • 浪客 2021-08-03 19:32
    关注

    else if (10 < I <= 20) 改成else if (10 < I && I <= 20) 其他的一样

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

报告相同问题?

问题事件

  • 系统已结题 8月11日
  • 已采纳回答 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码