奖金switch或if
题目描述
企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;
200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;
400000<I≤600000元时,高于400000元的部分按3%提成;600000<I≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
输入
一个整数,当月利润。
输出
一个整数,奖金。
样例输入
900
样例输出
90
提示
用Switch要比用if的看起来更清晰。
来源
#include<stdio.h>int main(){int a,b;scanf("%d",&a);if(a<=100000)b=a*0.1;if(a>100000&&a<=200000)b=10000+(a-100000)*0.075;if(a>200000&&a<=400000)b=17500+(a-200000)*0.05;if(a>400000&&a<=600000)b=27500+(a-400000)*0.03;if(a>600000&&a<=1000000)b=33500+(a-600000)*0.015;if(a>1000000)b=39500+(a-1000000)*0.01;printf("%d",b);return 0;}或:
#include<stdio.h>int main (){ int profit; int t; scanf("%d",&profit); t = profit/10000; if(t > 10)t = 10; switch(t) { case 0 :profit = profit * 0.1;break; case 1 : profit = (profit - 10000) * 0.075 + 10000;break; case 2 : case 3 : profit =(profit - 20000) * 0.05 + 17500;break; case 4 : case 5 : profit =(profit - 40000) * 0.03 + 27500;break; case 6 : case 7 : case 8 : case 9 : profit =(profit - 60000) * 0.015 + 33500;break; case 10 : profit =(profit - 100000) * 0.01 + 39500;break; } printf("%d",profit); return 0;}

浙公网安备 33010602011771号