鱼C论坛

 找回密码
 立即注册
查看: 755|回复: 2

[已解决]企业发放的奖金根据利润提成。

[复制链接]
发表于 2020-11-7 08:53:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利润(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的时候输出值为负
最佳答案
2020-11-7 09:55:57
有两个if后面多了各分号,带分号的判断后面的内容是一定执行的,就会违背你分段设置奖金的初衷,造成出现负数
已修改

满意的话请设为最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-7 09:54:31 | 显示全部楼层
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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-7 09:55:57 | 显示全部楼层    本楼为最佳答案   
有两个if后面多了各分号,带分号的判断后面的内容是一定执行的,就会违背你分段设置奖金的初衷,造成出现负数
已修改

满意的话请设为最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 17:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表