题目描述:
企业发放的奖金根据利润提成。
- 利润低于或等于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%提成。
从键盘输入当月利润,求应发放奖金总数?
程序分析: 根据利润所属不同级别 ,且有重叠,使用if...else if处理。编写伪代码:
- 读取利润
- 计算各级别应发奖金数
- 判断输入(if...else if) ,计算发放奖金总数(提成+奖金)
- 输出
代码实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
double prof; //当月利润
//double bonus1, bonus2, bonus3, bonus4, bonus5;//各标准下应发奖金数
double total=0;//总数
printf("请输入当月净利润 :");
scanf("%lf", &prof);
/* 利润低于或等于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%提成。*/
if (prof <= 100000)
total = prof * 0.1;
else if (prof <= 200000)
total = 100000 * 0.1 + (prof - 100000) * 0.075;
else if (prof <= 400000)
total = 100000 * 0.1 + 100000 * 0.075 + (prof - 200000) * 0.05;
else if (prof <= 600000)
total = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (prof - 400000) * 0.03;
else if (prof <= 1000000)
total = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (prof - 600000) * 0.015;
else if (prof > 1000000)
total = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (prof - 1000000) * 0.01;
printf("应发奖金总数为:%lf", total);
return 0;
}
运行结果:
请输入当月净利润 :120000
应发奖金总数为:11500.000000
D:\program\usual\vs\cdy\Debug\cdy.exe (进程 6236)已退出,代码为 0。
按任意键关闭此窗口. . .