解题思路:该题类似于分段函数,考虑用switch语句
注意事项:一般思路就是用case语句从0--9加上default顺次编写,但要注意题目中的利润区间,在switch语句体现出来例如case 2:同时存在于100000<i≤200000以及200000<i≤400000两个区间中,就没法处理了;这时可以用逆序从上至下累计奖金,同时还要注意利润中每一部分的奖金提成都是不同的;有一个小细节就是default放在switch语句开头用来处理利润为10^6以上的奖金。
参考代码:
#include<stdio.h>
int main()
{
int i;
int m = 0;
scanf("%d",&i);
switch(i/100000){
//default可以放到任意位置上
//程序进入switch语句后,顺序执行所有可执行语句,只有遇到break或}才会停止。
default:m+=(i-1000000)*0.01;i=1000000;
case 9:
case 8:
case 7:
case 6:m+=(i-600000)*0.015;i=600000;
case 5:
case 4:m+=(i-400000)*0.03;i=400000;
case 3:
case 2:m+=(i-200000)*0.05;i=200000;
case 1:m+=(i-100000)*0.075;i=100000;
case 0:m+=i*0.1;
}
printf("%d",m);
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复