题目:企业发放的奖金根据利润提成。
利润(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<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
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;
}
printf("提成为:bonus=%lf",bonus);
printf("\n");
}
方法二
#include <stdio.h>
int main() {
double profit, bonus = 0;
printf("请输入当月利润(单位:元): ");
scanf("%lf", &profit); // 读取输入的利润值
// 分段计算奖金(从高到低处理超出部分)
if (profit > 1000000) {
bonus += (profit - 1000000) * 0.01; // 超过100万的部分1%
profit = 1000000; // 剩余部分按更低区间计算
}
if (profit > 600000) {
bonus += (profit - 600000) * 0.015; // 60-100万部分1.5%
profit = 600000;
}
if (profit > 400000) {
bonus += (profit - 400000) * 0.03; // 40-60万部分3%
profit = 400000;
}
if (profit > 200000) {
bonus += (profit - 200000) * 0.05; // 20-40万部分5%
profit = 200000;
}
if (profit > 100000) {
bonus += (profit - 100000) * 0.075; // 10-20万部分7.5%
profit = 100000;
}
if (profit <= 100000) {
bonus += profit * 0.1; // 10万及以下部分10%
}
printf("应发放奖金总数为:%.2lf元\n", bonus);
return 0;
}
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客