这道题我使用了“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.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

李超凡 2年前 回复TA
@H2230819074 着实勤奋
H2230819074 2年前 回复TA
哥们几个又来刷题了
uq_75576708486 2年前 回复TA
来来来了,还热乎,抢个沙发
天锐 2年前 回复TA
@卜风雪丶何时有乀情 你也很卷啊,现在还在看博客
卜风雪丶何时有乀情 2年前 回复TA
博主讲的很详细,发表时间还是凌晨一点,真够卷的