企业发放的奖金来自利润提成。利润 i 低于或等于 10 万元的,可提成 10%为奖金;利润 i 高 于 10 万元,低于或等于20 万元(100000<i≤200000时,低于 10 万元的部分按 10%提成,高于10 万元的部分可提成 7.5%;200000<i≤400000 时,低于20 万的部分仍按上述办法提成(下同),高 于 20 万元的部分按 5%提成;400000<i≤600000时,高于 40 万元的部分按 3%提成;600000<i≤1000000 时,高于 60 万元的部分按 1.5%提成;i>1000000时,超过 100 万元的部分按 1%提成。 从键盘输入当月利润 i,求应发奖金总数。 要求: (1) 用 if 语句编程序;(2) 用 switch 语句编程序。
#include <iostream>
using namespace std;
int main(){
//if-----------------------------------------------
double i,bonus;
cin>>i;
if(i<0){
cout<<"Illegal!"<<endl;
return 0;
}else if(i<=100000)
bonus = i/10;
else if(i<=200000)
bonus = 10000+(i-100000)*7.5/100;
else if(i<=400000)
bonus = 17500+(i-200000)/20;
else if(i<=600000)
bonus = 27500+(i-400000)*3/100;
else if(i<=1000000)
bonus = 33500+(i-600000)*1.5/100;
else
bonus = 33500+400000*1.5/100+(i-1000000)/100;
cout<<"You'll get bonus of: "<<bonus<<endl;
//switch ------------------------------------------
bonus = 0;
int j = (int)(i/100000);
switch (j) {
case 0:
bonus = i/10;
break;
case 1:
bonus = 10000+(i-100000)*7.5/100;
break;
case 2:
case 3:
bonus = 17500+(i-200000)/20;
break;
case 4:
case 5:
bonus = 27500+(i-400000)*3/100;
break;
case 6:
case 7:
case 8:
case 9:
bonus = 33500+(i-600000)*1.5/100;
break;
default:
bonus = 33500+400000*1.5/100+(i-1000000)/100;
break;
}
cout<<"You'll get bonus of: "<<bonus<<endl;
}