企业发放的奖金根据利润提成。利润i低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提成5%;40万元到60万元之间时高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润i,求应发奖金总数。1.用if语句编程2用switch语句编程

- -当初用if 很快就写完了。。但用switch时- -居然用了switch嵌套。变得无比复杂- -。。。。还是改了过来

 

 
  
  1. #include<iostream>  
  2. #include<iomanip>  
  3. using namespace std;  
  4. int main()  
  5. {  
  6.  int num,w,ge,shi,bai,qian,wan;  
  7.  cin>>num;  
  8.  //if num =99999 num/10000=9  
  9.  if(num/10000!=0)w=5;  
  10.  else if(num/1000!=0)w=4;  
  11.  else if(num/100!=0)w=3;  
  12.  else if(num/10!=0)w=2;  
  13.  else w=1;  
  14.  
  15.  cout<<"是"<<w<<"位数"<<endl;  
  16.  wan=num/10000;  
  17.  qian=(num-wan*10000)/1000;  
  18.  bai=((num-wan*10000)-qian*1000)/100;  
  19.  shi=((num-wan*10000)-qian*1000-bai*100)/10;  
  20.  ge=(num-wan*10000)-qian*1000-bai*100-shi*10;  
  21.  cout<<"正在进行复杂计算,请等待0.000001秒"<<endl;  
  22.  switch(w)  
  23.  {  
  24.  case 5: cout <<"正顺序输出"<<wan<<'\t'<<qian<<'\t'<<bai<<'\t'<<shi<<'\t'<<ge<<endl;  
  25.   cout <<"逆顺序输出"<<ge<<shi<<bai<<qian<<wan<<endl;  
  26.   break;  
  27.  case 4: cout <<"正顺序输出"<<qian<<'\t'<<bai<<'\t'<<shi<<'\t'<<ge<<endl;  
  28.   cout <<"逆顺序输出"<<ge<<shi<<bai<<qian<<endl;  
  29.   break;  
  30.  case 3: cout <<"正顺序输出"<<bai<<'\t'<<shi<<'\t'<<ge<<endl;  
  31.   cout <<"逆顺序输出"<<ge<<shi<<bai<<endl;  
  32.   break;  
  33.  case 2: cout<<"正顺序输出" <<shi<<'\t'<<ge<<endl;  
  34.   cout<<"逆顺序输出" <<ge<<shi<<endl;  
  35.   break;  
  36.  case 1: cout<<"正顺序输出"  <<ge<<endl;  
  37.   cout <<"逆顺序输出" <<ge<<endl;  
  38.   break;  
  39.  
  40.  }  
  41.  return 0;  
  42. }