黑马程序员技术交流社区
标题: 1109_练习_swith语句_ 代码简化 [打印本页]
作者: donkey2 时间: 2014-11-9 15:03
标题: 1109_练习_swith语句_ 代码简化
本帖最后由 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
作者: donkey2 时间: 2014-11-9 15:16
刚才看了标准答案,又发现如下问题:1. 收入应该初始化为浮点类型,因为乘以百分数后可能又小数部分。
2.代码简化相关
2.1 打印语句太多了,应该修改为只写一个打印语句。
2.2 switch 语句中,相同的处理可以方式的可以只写一个语句,只有一个break,
对应几个处理方式相同的case。
目前想到的就这些,请各位指点。:)
作者: donkey2 时间: 2014-11-9 15:24
简化后的代码:
#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;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |