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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© donkey2 中级黑马   /  2014-11-9 15:03  /  1702 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 donkey2 于 2014-11-11 12:10 编辑

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

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
//        NSLog(@"Hello, World!");


        int sall;
        scanf("%i",&sall);
        int income;
        int a = sall/1000;
        switch (a) {
            case 0:
                income = 500;
                NSLog(@"收入为%i",income);
                break;
            case 1:
                income = 500;
                 NSLog(@"收入为%i",income);
                break;
            case 2:
                income = sall * 0.08 + 500;
                 NSLog(@"收入为%i",income);
                break;
            case 3:
                income = sall * 0.08 + 500;
                 NSLog(@"收入为%i",income);
                break;
            case 4:
                income = sall * 0.08 + 500;
                 NSLog(@"收入为%i",income);
                break;
            case 5:
                income = sall * 0.08 + 500;
                 NSLog(@"收入为%i",income);
                break;

            default:
                income = sall * 0.12 + 500;
                 NSLog(@"收入为%i",income);
                break;
        }
    }
    return 0;
}

遇到的问题:
1. 刚开始0.08 写成了 8% ,计算出收入总是为 0。
未解决的问题:
2. 目前代码看起来有重复,请各位前辈指点一下怎么简化一下代码。
辛苦了!:handshake
//15:00

2 个回复

倒序浏览

刚才看了标准答案,又发现如下问题:1. 收入应该初始化为浮点类型,因为乘以百分数后可能又小数部分。
2.代码简化相关
  2.1 打印语句太多了,应该修改为只写一个打印语句。
2.2 switch 语句中,相同的处理可以方式的可以只写一个语句,只有一个break,
       对应几个处理方式相同的case。
目前想到的就这些,请各位指点。:)




回复 使用道具 举报
简化后的代码:
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
//        NSLog(@"Hello, World!");
        
        
        int sall;
        scanf("%i",&sall);
        int income;
        int a = sall/1000;
        switch (a) {
            case 0:
            case 1:
                income = 500;
                break;
            case 2:
            case 3:
            case 4:
            case 5:
                income = sall * 0.08 + 500;
                break;
               
            default:
                income = sall * 0.12 + 500;
                break;
        }
         NSLog(@"收入为%i",income);
    }
    return 0;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马