题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
题目分析:题目较长,但是难度不大,主要可使用if-else或者switch case 两种方法实现,更多的是推出这一题的所对应的每个区间的对应公式,在去将对应的利润带入到公式中计算
I > 100万元,奖金 = 10 × 10% + 10 × 7.5% + 20 × 5% + 20 × 3% + 40 × 1.5% + (I - 100) × 1%
60万元 < I ≤ 100万元,奖金 = 10 × 10% + 10 × 7.5% + 20 × 5% + 20 × 3% + (I - 60) × 1.5%
40万元 < I ≤ 60万元,奖金 = 10 × 10% + 10 × 7.5% + 20 × 5% + (I - 40) × 3%
20万元 < I ≤ 40万元,奖金 = 10 × 10% + 10 × 7.5% + (I - 20) × 5%
10万元 < I ≤ 20万元,奖金 = 10 × 10% + (I - 10) × 7.5%
I ≤ 10万元,奖金 = I × 10%
注意要点:本题的数据较大也较为精细,要细心的确定要数据以及细心的确定好数据的类型
具体代码(if-else):
#include <stdio.h>
main(){
double i,j=0;
scanf("%lf",&i);
if(i>1000000){
j+=100000*0.10+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
}
else if(i>600000 && i<=1000000){
j+=100000*0.10+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
}
else if(i>400000 && i<=600000){
j+=100000*0.10+100000*0.075+200000*0.05+(i-400000)*0.03;
}
else if(i>200000 && i<=400000){
j+=100000*0.10+100000*0.075+(i-200000)*0.05;
}
else if(i>100000 && i<=200000){
j+=100000*0.10+(i-100000)*0.075;
}
else{
j+=i*0.1;
}
printf("%.2lf",j);
}
具体代码(switch case):
#include <stdio.h>
int main() {
double i,j=0;
scanf("%lf",&i);
int k=i/100000;
switch(k){
case 10: j+=100000*0.10+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
break;
case 9:
case 8:
case 7:
case 6: j+=100000*0.10+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;
break;
case 5:
case 4: j+=100000*0.10+100000*0.075+200000*0.05+(i-400000)*0.03;
break;
case 3:
case 2: j+=100000*0.10+100000*0.075+(i-200000)*0.05;
break;
case 1: j+=100000*0.10+(i-100000)*0.075;
break;
default: j+=i*0.1;
}
printf("%.2lf",j);
}