李超凡


私信TA

用户名:uq_83574500506

访问量:340

签 名:

等  级
排  名 22474
经  验 651
参赛次数 2
文章发表 1
年  龄 18
在职情况 学生
学  校 山东协和学院
专  业 计算机科学与技术

  自我简介:

TA的其他文章

这道题我使用了“switch”判断语句来解决不同金额条件下的求值问题


【题目描述】:

企业发放的奖金根据利润提成。利润低于或等于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语句的用法(我是看别人代码自己一点点摸索的,不懂用法的可以自己百度)


【思路】:

首先创建三个空间i,x,y

把利润的值赋给i和y,最后的奖金用x表示,

由题目看到金额判断是以几十万为单位,真正关键的数字只是最前面的数字(是否在十万位上,是多少),

所以我以这个数字作为判断条件,这里i的作用就是通过/100000来得到这个位置上的数字,而y可以继续保存利润的数值,

接下来就很明了了,因为i/100000了,所以如果结果是case 0,即代表十万位上没有数字(也就说明利润小于100000),

那么接下来就进行奖金的计算并把奖金的值输出,程序例如:printf("%d",x=y*0.1);

记得每一个判断的执行结果后都要加一个break用来结束switch循环(也就是不再看下面的判断语句了),

以此类推写下剩下几种情况下的执行语句,为了缩短字节并提高运算速度,可以把前面固定不变的奖金先算出来再写到程序里面

{

100000前的奖金:10000

200000前的奖金:17500

400000前的奖金:27500

600000前的奖金:33500

1000000前的奖金:39500

}

还有,当十万位上的数字为6或7或8或9时,不用每个数字都给他写一个输出语句,由于它们这几个的运算公式是通用的,就可以通过这种形式:

{        

        case 6:

        case 7:

        case 8:

        case 9:printf("%d",x=33500+(y-600000)*0.015);break;

}

实现共用一个输出语句。

最后万年不落return 0;



【参考代码】如下:

#include<stdio.h>

int main()

{

    int i,x,y;

    scanf("%d",&i);

    y=i;

    i/=100000;

    switch(i){

        case 0:printf("%d",x=y*0.1);break;

        case 1:printf("%d",x=10000+(y-100000)*0.075);break;

        case 2:

        case 3:printf("%d",x=17500+(y-200000)*0.05);break;

        case 4:

        case 5:printf("%d",x=27500+(y-400000)*0.03);break;

        case 6:

        case 7:

        case 8:

        case 9:printf("%d",x=33500+(y-600000)*0.015);break;

        default:printf("%d",x=39500+(y-1000000)*0.01);break;

    }

    return 0;

}


希望对你有帮助哦awa

 

0.0分

8 人评分

  评论区

哥们几个又来刷题了
2022-10-13 13:28:44
来来来了,还热乎,抢个沙发
2022-10-13 01:32:52
博主讲的很详细,发表时间还是凌晨一点,真够卷的
2022-10-13 01:28:28
  • «
  • 1
  • »