企业发放的奖金根据利润提成,用switch语句实现。 利润I低于(含等于)100 000元的,奖金可提10%;利润高于100 000元,低于(含等于)200 000元时,低于100 000的部分按10%提成,高于100 000元的部分,可提成7.5%;当200 000 < I ≤ 400 000时,低于200 000元的部分仍按上述办法提成(下同),高于200 000的部分按5%提成;当400 000 < I ≤ 600 000时,高于400 000的部分按3%提成;当600 000 < I ≤ 1000000时,高于600 000的部分按1.5%提成;当 I > 1000 000时,超过1000 000的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
#include <stdio.h>
int main()
{
double m, y;
int x;
scanf("%lf", &m);
if (m < 0)
printf("不能为负值,请重新输入");
else
{
x = m / 100000;
switch (x)
{
case 0:y = m * 0.1;
break;
case 1:y = (100000 * 0.1) + (m - 100000)*0.075;
break;
case 2:y = (100000 * 0.1) + (100000 * 0.075) + (m - 200000)*0.05;
break;
case 3:y = (100000 * 0.1) + (100000 * 0.075) + (m - 200000)*0.05;
break;
case 4:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (m - 400000)*0.03;
break;
case 5:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (m - 400000)*0.03;
break;
case 6:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (200000 * 0.03) + (m - 600000)*0.015;
break;
case 7:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (200000 * 0.03) + (m - 600000)*0.015;
break;
case 8:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (200000 * 0.03) + (m - 600000)*0.015;
break;
case 9:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (200000 * 0.03) + (m - 600000)*0.015;
break;
default:y = (100000 * 0.1) + (100000 * 0.075) + (200000 * 0.05) + (200000 * 0.03) + (400000 * 0.015) + (m - 1000000)*0.01;
break;
}
printf("%.2f", y);
}
return 0;
}