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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张国繁 中级黑马   /  2015-6-21 15:28  /  1065 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大伙们,怎么用switch实现这个功能呢?


已知某公司员工的工资底薪为500,员工销售的软件金额与提成方式如下:
销售额 ≤2000            没有提成
2000 < 销售额 ≤ 5000    提成8%
5000 < 销售额 ≤ 10000   提成10%
销售额 ≥ 10000          提成12%
利用switch

4 个回复

正序浏览
#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;
}
回复 使用道具 举报
都可以,两个都试试,看哪个更好用
回复 使用道具 举报
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;
}
回复 使用道具 举报
用if多好?switch太麻烦了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马