解题思路:该题类似于分段函数,考虑用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 人评分