/*题目:企业发放的奖金根据利润提成。
利润(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,求应发放奖金总数?*/
//尝试用switch的case穿透来完成
#include <stdio.h>
void a2()
{
long int i;
double money=0;
printf("请输入利润值:");
scanf("%ld",&i);
if (i>1000000) //由于没有上限,无法罗列case的值,所以将大于一百万的数单独计算
{
money = (i-1000000)*0.01;
i=1000000;
}
switch(i/100000) //将利润值除以十万,都是int型数字,其结果也是0-10的整数。
{
case 10:
case 9:
case 8:
case 7:
case 6:
money += (i-600000)*0.015;
i=600000; //计算大于六十万的奖金,利用穿透计算低于六十万的奖金值。
case 5:
case 4:
money += (i-400000)*0.03;
i=400000; //计算大于四十万的奖金,利用穿透计算低于四十万的奖金值。
case 3:
case 2:
money += (i-200000)*0.05;
i=200000;
case 1:
money += (i-100000)*0.075;
i=100000;
default:
money += i*0.03;
}
printf("应发放的奖金额度为:%10.0lf.\n",money);
}
//最后证明老板很抠门~!
|
|