惧留孙网

juliusun.com

惧留孙网 > 在线教程 > C语言练习题

判断结构之switch

(10/50 节 页面下方包含QQ群、作者QQ等)

1、企业发放的奖金根据利润提成。利润 I 低于或等于 100000 元的,奖金可提 10%;利润高于 100000 元,低于 200000 元(100000<I<=200000)时,低于100000元的部分按 10% 提成,高于 100000 元的部分,可提成 7.5%;200000<I<=400000 时,低于 200000 元的部分仍按上述办法提成(下同)。高于 200000 元部分按 5% 提成;400000<I<=600000 元时,高于 400000 元的部分按 3% 提成;600000<I<=1000000 时,高于 600000 元的部分按 1.5% 提成;I>1000000 时,超过 1000000 元的部分按 1%提成。从键盘输入当月利润 I,求应发奖金总数
要求:使用switch语句编写


#include<stdio.h>
int main()
{
    float i,b;
    float b0_1 = 100000 * 0.1,b1_2,b2_4,b4_6,b6_10;
    b1_2 = b0_1 + 100000 * 0.075;
    b2_4 = b1_2 + 200000 * 0.05;
    b4_6 = b2_4 + 200000 * 0.03;
    b6_10 = b4_6 + 400000 * 0.015;

    printf("请输入利润\n");
    scanf("%f",&i);

    /*整数和整数相除仍然是整数,所以将i强制
    转换成int。通过整数i与100000相除,判断
    整数倍,即可获取i的范围,进行相关运算即
    可*/
    switch((int)i/100000)
    {
    case 0:     //0<= i <10000
        b = i * 0.1;
        break;
    case 1:     //100000<= i <20000
        b = b0_1 + (i-100000) * 0.075;
        break;
    case 2:
    case 3:     //200000<= i <40000
        b = b1_2 + (i-200000)*0.05;
        break;
    case 4:
    case 5:     //400000<= i <60000
        b = b2_4 + (i-400000)*0.03;
        break;
    case 6:
    case 7:
    case 8:
    case 9:     //600000<= i <1000000
        b = b4_6 + (i-600000)*0.015;
        break;
    default:    //1000000<=i
        b = b6_10 + (i-1000000) * 0.01;
    }

    printf("提成是 %f  元",b);

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

作者:冥河 QQ:3304576112   交流QQ群:554701039 C语言讲课群 本教程内容由本站保留版权,请勿复制传播。

抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的