请问一下以下程序错在哪里?
业发放的奖金根据利润提成。利润i低于或等于10万元的,奖金可提成10%;利润高于10万元,低于或等于20万元,低于10万元的部分按10%提成,高于10万元的部分按7.5%提成;同理200000 <i <=400000,高于20万元的按5%提成;400000 <i <=600000,高于40万元的部分按3%提成;600000 <i <=1000000,高于60万元的部分按1.5%提成.i> 1000000,超过100万的部分按1%提成,求该月奖金数.
#include <iostream>
using namespace std;
int main()
{int i;int f;int c;
cin> > i;
c=i/100000;
if(c> 10) c=10;
switch(c)
{case 1:f=0.1*i;break;
case 2:f=10000+(i-100000)*0.075;break;
case 3:
case 4:f=10000+7500+(i-200000)*0.05;break;
case 5:
case 6:f=10000+7500+10000+(i-400000)*0.03;break;
case 7:
case 8:
case 9:
case 10:f=10000+7500+10000+6000+6000+(i-1000000)*0.01;
}
cout < < "wage: " < <f < <endl;
system( "pause ");
return 0;
}
出现warning,而且不能得出所要求的结果,例如:我输入89,它不是输出8.9,而是29
[解决办法]
case 1:f=0.1*i;break;
f是int,而0.1.............................
[解决办法]
不知道你编译器怎么编译过去的 = =!
[解决办法]
int f;
换成
double f;