题目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,求应发放奖金总数?
编程解析:请利用数轴来分界,定位。注意定义时需把奖金定义成双精度浮点(double)型。
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const *argv[])
{
double I;
double bonus, bonus1, bonus2, bonus4, bonus6, bonus10; //奖金定义成双精度浮点(double)型。
printf("请您输入当前月份获得的利润:\n");
scanf("%lf", &I);//注意输入的格式
bonus1 = 100000 * 0.1;
bonus2 = bonus1 + 100000 * 0.075;
bonus4 = bonus2 + 200000 * 0.05;
bonus6 = bonus4 + 200000 * 0.03;
bonus10 = bonus6 + 400000 * 0.015;
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 if (I > 1000000)
{
bonus = bonus10 + (I - 1000000) * 0.01;
}
//对于if else 结构进行灵活应用,模仿数轴的区间,
// 把不同档利润也划分不同区间。最后计算利润时,将数据按照区间划分,计算最终利润,达到简化计算的效果。
printf("应发放的奖金总数是:bonus=%lf\n", bonus);
return 0;
}