例子:
企业发放的奖金根据利润提成:
- 利润低于或等于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,求应发放奖金总数?
解决思路:
- 在主函数分层列出计算式
- 在bonusf函数对 利润 i 进行 if 判断 再计算
- 最后输出
#include<stdio.h>
//声明函数
double bonusf(double i);
double bonus1, bonus2, bonus4, bonus6, bonus10;
int main() {
double i;
printf("你的净利润是:\n");
scanf("%lf", &i);
bonus1 = 1e5 * 0.1;
bonus2 = bonus1 + 1e5 * 0.075;
bonus4 = bonus2 + 2e5 * 0.05;
bonus6 = bonus4 + 2e5 * 0.03;
bonus10 = bonus6 + 4e5 * 0.015;
//调用函数
double bonus = bonusf(i);
printf("提成为:%.2lf", bonus);
return 0;
}
//定义函数
double bonusf(double i) {
double bonus;
if (i <= 1e5) {
bonus = i * 0.1;
} else if (i <= 2e5) {
bonus = bonus1 + (i - 1e5) * 0.075;
} else if (i <= 4e5) {
bonus = bonus2 + (i - 2e5) * 0.05;
} else if (i <= 6e5) {
bonus = bonus4 + (i - 4e5) * 0.03;
} else if (i <= 1e6) {
bonus = bonus6 + (i - 6e5) * 0.015;
} else {
bonus = bonus10 + (i - 1e6) * 0.01;
}
return bonus;
}
// 运行结果
// 你的净利润是:
// 122600
// 提成为:11695.00