题目:企业发放的奖金根据利润提成。利润
(i)
低于或等于
10
万元时,奖金可提
10%
;利润高
于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提
成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于
40 万元的部分,可提成 3% ; 60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于
于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提
成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于
40 万元的部分,可提成 3% ; 60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
long int i;
double bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
scanf("%ld", &i);
bonus1 = 100000 * 0.1;
bonus2 = bonus1 + 100000 * 0.75;
bonus4 = bonus2 + 200000 * 0.5;
bonus6 = bonus4 + 200000 * 0.3;
bonus10 = bonus6 + 400000 * 0.15;
if (i <= 100000)
bonus = i*0.1;
else if (i <= 200000)
bonus = bonus1 + (i - 100000)*0.075;
else if (i <= 400000)
bonus = bonus2 + (i - 200000)*0.05;
else if (i <= 600000)
bonus = bonus4 + (i - 400000)*0.03;
else if (i <= 1000000)
bonus = bonus6 + (i - 600000)*0.015;
else
bonus = bonus10 + (i - 1000000)*0.01;
printf("bonus=%0.3lf", bonus);
return 1;
}