#include <iostream> using namespace std; int main(){ int i,m; cout<<"请输入当月利润(单位/万)"<<endl; cin>>i; if(i<=10){ m=i0.1; }else if(i>10&&i<20){ m=100.1+(i-10)0.075; }else if(i>=20&&i<40){ m=100.1+100.075+(i-20)0.05; }else if(i>=40&&i<60){ m=100.1+100.075+200.05+(i-40)0.03; }else if(i>=60&&i<100){ m=100.1+100.075+200.05+200.03+(i-60)0.015; }else if(i>=100){ m=100.1+100.075+200.05+200.03+400.015+(i-100)*0.01; } cout<<"奖金:"<<m<<"万"<<endl; return 0; }用Switch编程
时间: 2024-02-19 21:04:07 浏览: 68
好的,以下是用 switch 语句重写的程序:
```
#include <iostream>
using namespace std;
int main(){
int i, m;
cout<<"请输入当月利润(单位/万)"<<endl;
cin>>i;
switch(i/10){
case 0:
m = i * 0.1;
break;
case 1:
m = 10 * 0.1 + (i - 10) * 0.075;
break;
case 2:
case 3:
m = 10 * 0.1 + 10 * 0.075 + (i - 20) * 0.05;
break;
case 4:
case 5:
m = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (i - 40) * 0.03;
break;
case 6:
case 7:
case 8:
case 9:
m = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (i - 60) * 0.015;
break;
default:
m = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (i - 100) * 0.01;
break;
}
cout<<"奖金:"<<m<<"万"<<endl;
return 0;
}
```
注意,由于 switch 语句只能判断整数,因此对输入的利润进行了取整操作。另外,由于 case 语句不能直接判断范围,因此在第三、四、五个 case 中使用了 fallthrough 的特性。
阅读全文