m0_69593859 2022-04-13 20:48 采纳率: 100%
浏览 58
已结题

这个分段函数还是有不清楚的地方

(8)求解分段函数
设某公司的业务员业绩的计算方法为:工资=基本底薪+奖金。
其中,奖金的计算为:
当业绩在10000元以下时,只发基本底薪1000元;
当业绩在10000元以上时,才可以拿奖金。
提成比率为:
当业绩在20000元以下时,超出10000元的部分可按照5%计算奖金;
当业绩在20000元以上50000元以下时,超出20000元部分可按照6%计算奖金;
当业绩在50000元以上100000元以下时,超出50000元的部分可以按照7%计算奖金;
当业绩在100000元以上时,超出100000元的部分可按照8%计算奖金。
编写程序:输入一个业务员的销售额,计算其应发的工资额。
要求:每行都要有注释。

  • 写回答

1条回答 默认 最新

  • a5156520 2022-04-15 16:30
    关注

    如果对于奖金部分题意理解没有错误,下面是一个实现:

    #include <stdio.h>  //printf函数头文件 
    
    int main(void){   //程序入口程序main函数 
        
        double baseMoney = 1000;  //基本工资 
        double allMoney = 0;   //总工资 
        double bonusMoney = 0;   //奖金 
        
        double achievement ;   //业绩 
        printf("请输入业绩:\n");  //获取业绩的提示信息 
        scanf("%lf",&achievement) ;  //获取业绩输入 
        
        if(achievement<=10000){   //如果业绩小于10000
            allMoney = baseMoney;    //总工资为基本工资  
        }else if(achievement<=20000){   //如果业绩大于20000 小于50000 
            allMoney = baseMoney + (double)(achievement-10000)*0.05; //总工资为基本工资,加上大于10000部分的奖金 
        }else if(achievement<=50000){  //如果业绩大于20000,小于50000 
        //则工资为基本工资加上大于20000小于50000部分奖金 ,加1000020000部分的奖金
            allMoney = baseMoney + (double)(achievement-20000)*0.06+ 10000*0.05;  
        }else if(achievement<=100000){  //如果业绩大于50000小于10000
        // 则工资为基本工资,加上大于50000小于10000部分奖金,加2000050000部分奖金,加1000020000部分奖金 
            allMoney = baseMoney + (double)(achievement-50000)*0.07 + 30000*0.06 + 10000*0.05;
        }else{  //如果业绩大于100000
        //则工资为基本工资,加上大于100000部分奖金,加上50000100000部分奖金,加2000050000部分奖金,加1000020000部分奖金 
            allMoney = baseMoney + (double)(achievement-100000)*0.08 + 50000*0.07+30000*0.06+10000*0.05;
        }
        
        //打印结果 
        printf("业绩为:%.2lf, 应发工资为:%.2lf .\n",achievement,allMoney);
        
        //main函数退出 
        return 0;
        
    } //main函数结束 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月13日