A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ck2133683 于 2015-6-18 17:55 编辑

已知某公司员工的工资底薪为500,员工销售的软件金额与提成方式如下:
销售额 ≤2000            没有提成
2000 < 销售额 ≤ 5000    提成8%
5000 < 销售额 ≤ 10000   提成10%
销售额 ≥ 10000          提成12%
利用switch
*/
我理解是 销售额在2000~5000内时,提成为8%,销售额在5000~10000内时,超出5000的部分,提成为10%,销售额超过10000的话 超出部分算12%, 所以我的代码与答案有点不一样。
代码如下:


#include <stdio.h>
#include <stdlib.h>

int main()
{
    //定义一个变量用来接收这个员工的销售额
    int sum;
    //提示用户输入销售额
    printf("请问这个员工这个月的销售额是多少?");
    scanf("%d",&sum);
    // 定义一个变量 用来存储他的薪水;
    double income;
    int ob;
    //判断他的薪水属于哪个区间。
    if(sum <=2000)
    {
        ob=1;
    }
    else if(ob<=5000)
    {
        ob=2;
    }
    else if(ob<=10000)
    {
        ob=3;
    }
    else
    {
        ob=4;
    }
    //计算他的薪水。
    switch (ob) {
        case 1:
            income =500;
            break;
        case 2:
            income =500+(sum-2000)*0.08;
            break;
        case 3:
            income = 500+ (3000)*0.08+(sum-5000)* 0.1;
            break;
        case 4:
            income = 500 + (3000)*0.08+(5000)* 0.1 + (sum-10000);
            break;
        default:
            printf("error");
            break;
    }
    //输出结果。
    printf("这个员工的收入是%.2f.\n", income);
    return 0;
}

评分

参与人数 1黑马币 +9 收起 理由
heiheihehe + 9 赞一个!

查看全部评分

13 个回复

倒序浏览
为什么还要用销售额减去范围值了。。不是直接用底薪+销售额*提成吗?
回复 使用道具 举报
丁铭检 发表于 2015-6-18 14:33
为什么还要用销售额减去范围值了。。不是直接用底薪+销售额*提成吗?

那么10001 和 9999  的提成差距直接就是 差了200块钱了。
回复 使用道具 举报
我觉得销售额直接*提成就可以,如果像你做的这样,那么题目中就应该写清楚了,不用考虑现实的问题
回复 使用道具 举报
这样先用if判断一遍然后再用switch 有点 太那啥了,
可以考虑switch的嵌套 (销售额-1)/2000
case 0
————
default {

switch (销售额-1)/5000
case 0:
case 1:
default:
}
回复 使用道具 举报
ck2133683 发表于 2015-6-18 17:56
那么10001 和 9999  的提成差距直接就是 差了200块钱了。

那个就是命了。。
回复 使用道具 举报
goldboy 来自手机 中级黑马 2015-6-18 20:27:34
7#
你的理解是有可取性的,但我更看好题目中的规则,这种游戏规则会充分发挥员工积极性,达到2000的会想着达到5000,因为达到5000后,你的提成会增加非常多,就反之,就算你达到4999,你的提成也远没有达到5000多,这就是不断驱使员工向更高的水平!
回复 使用道具 举报
这个还没做呢!我被前边的题快搞晕了
回复 使用道具 举报
你理解错了,直接用销售额乘以每个阶段的提成百分比加上底薪就可以了。
回复 使用道具 举报
是啊,你理解错了啊,应该是常识问题,社会经验太少!
回复 使用道具 举报
你这个算法销售会辞职的。。。
不过与答案一不一样并不重要,尤其在理解不一样的情况下,只要思路的代码正确就可以了,不用关心结果。
回复 使用道具 举报
把题目理解复杂了,你说的这种题目也有,不过题目怎么说就应该按题目来
回复 使用道具 举报
#include<stdio.h> int main () {     float sum = 500.0f;     int a = 0;                    // 定义变量存储销售额     printf("请输入员工销售额:\n");     scanf("%d",&a);     if (a>=10000)     {         sum = sum + a * 0.12;     }     switch (a/1000)     {         case 0:         case 1:             break;         case 2:         case 3:         case 4:             sum = sum +a * 0.08;             break;         case 5:         case 6:         case 7:         case 8:         case 9:             sum = sum + a *0.1;             break;     }     printf("%.2f\n",sum);     return 0;      }
回复 使用道具 举报
牛叉算法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马