题目来自于《100道C语言经典例题》,代码由番杰本人提供,若有雷同,实属荣幸。
1. 题目:
企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
2. 代码
#include <stdio.h>
#define Bonus_10 (100000 * 0.1) //10万整的奖金
#define Bonus_20 (Bonus_10 + 100000 * 0.075) //20万整的奖金
#define Bonus_40 (Bonus_20 + 200000 * 0.05) //40万整的奖金
#define Bonus_60 (Bonus_40 + 200000 * 0.03) //60万整的奖金
#define Bonus_100 (Bonus_60 + 400000 * 0.015) //100万整的奖金
int main(void)
{
unsigned long profit ;
double bonus ;
int level;
printf("请输入利润(单位:元):");
scanf("%d",&profit) ;
if((profit / 1000000u) == 0)
{
level = (profit / 100000u) ;
switch(level)
{
case 0 :bonus = profit * 0.1;break;
case 1 :bonus = Bonus_10 + (profit - 100000) * 0.075;break;
case 2 :
case 3 :bonus = Bonus_20 + (profit - 200000) * 0.05;break;
case 4 :
case 5 :
case 6 :bonus = Bonus_40 + (profit - 400000) * 0.03;break;
case 7 :
case 8 :
case 9 :bonus = Bonus_60 + (profit - 600000) * 0.015;break;
default:break;
}
}
else
bonus = Bonus_100 + (profit - 1000000u) * 0.015 ;
printf("奖金为%f元",bonus);
return 0;
}