企业发放的奖金根据利润提成。
利润(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,求应发放奖金总数?
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void main()
{
double l, r=0;
printf("请输入利润/万元:");
scanf("%lf", &l);
if (l <= 10)
r =0.1 * l;
if (l > 10 && l <= 20)
r = 0.1*l + 0.075 * (l - 10);
if (l > 20 && l <= 40)
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20);
if (l > 40 && l <= 60);
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40);
if (l > 60 && l < 100);
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40) + 0.015 * (l - 60);
if (l > 100)
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40) + 0.015 * (l - 60) + 0.01 * (l - 100);
printf("奖金=%lf", r);
}
为什么输入13的时候输出值为负 void main()
{
double l,r = 0;
printf("请输入利润/万元:");
scanf("%lf", &l);
if (l <= 10)
r = 0.1 * l;
if (l > 10 && l <= 20)
r = 0.1 * l + 0.075 * (l - 10);
if (l > 20 && l <= 40)
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20);
if (l > 40 && l <= 60) //这里多了个分号
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40);
if (l > 60 && l < 100) //这里多了个分号
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40) + 0.015 * (l - 60);
if (l > 100)
r = 0.1 * l + 0.075 * (l - 10) + 0.05 * (l - 20) + 0.3 * (l - 40) + 0.015 * (l - 60) + 0.01 * (l - 100);
printf("奖金=%lf", r);
} 有两个if后面多了各分号,带分号的判断后面的内容是一定执行的,就会违背你分段设置奖金的初衷,造成出现负数
已修改
满意的话请设为最佳答案
页:
[1]