企业奖金,用switch语句编写程序。
企业发放的奖金根据利润提成。利润I低于或等于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语句编写程序。
这是我写的程序C语言:
#include<stdio.h>
//需要引入的文件
//如提示运行通过,但解题失败,认真对比预期输出和实际输出之间的差异
int main()
{ int I,b;
float a;
scanf("%d",&I);
b=I/100000;
switch(b){
case 0:
printf("%.2f",a=I*0.1);
break;
case 1:
printf("%.2f",a=100000*0.1+(I-100000)*0.075);
break;
case 2:
printf("%.2f",a=100000*0.1+200000*0.075+(I-200000)*0.05);
break;
case 3:
printf("%.2f",a=100000*0.1+100000*0.075+(I-200000)*0.05);
break;
case 4:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+(I-400000)*0.03);
break;
case 5:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+(I-400000)*0.03);
break;
case 6:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015);
break;
case 7:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015);
break;
case 8:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015);
break;
case 9:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015);
break;
case 10:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(I-600000)*0.015);
break;
default:
printf("%.2f",a=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(I-1000000)*0.01);
break;
}
return 0;
}
有什么问题吗?
输入670000,答案输出26550.00,但是我的答案是34550.00