#include<stdio.h>
int main()
{
float s,i;
int a;
scanf("%f",&i);
printf("当月利润=%f\n",i);
if(i<=1e+5)a=1;
if(1e+5<i<=2e+5)a=2;
if(2e+5<i<=4e+5)a=3;
if(4e+5<i<=6e+5)a=4;
switch(a)
{
case (1):s=10000010/100;break;
case (2):s=10000010/100+(i-100000)7.5/100;break;
case (3):s=10000010/100+1000007.5/100+(i-200000)5/100;break;
case (4):s=10000010/100+1000007.5/100+2000005/100+(i-400000)3/100;break;
case (5):s=10000010/100+1000007.5/100+2000005/100+2000003/100+(i-600000)1.5/100;break;
case (6):s=10000010/100+1000007.5/100+2000005/100+2000003/100+4000001.5/100+(i-1000000)*1/100;break;
default:printf("error");
}
printf("应发奖金总数=%f\n",s);
return 0;
}
if(1e+5<i<=2e+5)a=2;
if(2e+5<i<=4e+5)a=3;
if(4e+5<i<=6e+5)a=4;
这全是错误写法,改为:
if(i>1e+5 && i<= 2e+5)
a=2;
后面类似
double类型的输出应该是lf,不是f.
printf("应发奖金总数=%f\n",s);
改为
printf("应发奖金总数=%lf\n",s);
if(1e+5<i<=2e+5)a=2;
if(2e+5<i<=4e+5)a=3;
if(4e+5<i<=6e+5)a=4;
这里 改成:
if(1e+5<i && i<=2e+5)a=2;
if(2e+5<i && i<=4e+5)a=3;
if(4e+5<i && i<=6e+5)a=4;