黑马程序员技术交流社区

标题: 利用switch实现一个功能 [打印本页]

作者: 张国繁    时间: 2015-6-21 15:28
标题: 利用switch实现一个功能
大伙们,怎么用switch实现这个功能呢?


已知某公司员工的工资底薪为500,员工销售的软件金额与提成方式如下:
销售额 ≤2000            没有提成
2000 < 销售额 ≤ 5000    提成8%
5000 < 销售额 ≤ 10000   提成10%
销售额 ≥ 10000          提成12%
利用switch
作者: zhao_HHH    时间: 2015-6-21 16:29
用if多好?switch太麻烦了。
作者: 晗修    时间: 2015-6-21 16:39
switch ((n-1)/2000){
           case 0:
                    return 500;
                    break;
            default:
                    switch ((n-1)/5000){
                          case 0:
                                  return (n * 0.08 +500);
                                  break;
                          case 1:
                                  return (n * 0.10 +500);
                                  break;
                          default:
                                  return (n * 0.12 +500);
                                  break;
                    }
                   break;
}
作者: fixer    时间: 2015-6-21 19:39
都可以,两个都试试,看哪个更好用
作者: 小龙女的萝卜    时间: 2015-6-21 21:55
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    printf("请输入您的销售额:\n");
   
    int xiaoShouE = 0;
   
    scanf("%d", &xiaoShouE);
   
    int k = 0;
    float gongZi = 500.0f;
    if(xiaoShouE % 10 == 0)
    {
        k = xiaoShouE / 1000;
    }else
    {
        k = xiaoShouE /1000 + 1;
    }
   
    switch(k)
    {
        case 0 :
        case 1 :
        case 2 :
            printf("没有提成!\n");
            break;
        case 3 :
        case 4 :
        case 5 :
            gongZi = gongZi + xiaoShouE * 0.08;
            printf("工资为%f",gongZi);
            break;
        case 6 :
        case 7 :
        case 8 :
        case 9 :
        case 10 :
            gongZi = gongZi + xiaoShouE * 0.1;
            printf("工资为%f",gongZi);
            break;
        default :
            gongZi = gongZi + xiaoShouE * 0.12;
            printf("工资为%f",gongZi);
    }
   
    return 0;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2