|  | 
 
| 
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  复制代码#include<stdio.h>
int main()
{
                int a,s;scanf("%d",&s);
                a=s-3500;
                if(a<=0) printf("%d",s);
                else if(a<=1500) printf("%d",3500+a*(1-0.03));
                else if(a<=4500) printf("%d",3500+1500*(1-0.03)+(a-1500)*0.9);
                else if(a<=9000) printf("%d",3500+1500*0.97+3000*0.9+(a-4500)*0.8);
                else if(a<=35000) printf("%d",3500+1500*0.97+3000*0.9+4500*0.8+(a-9000)*0.75);
                else  printf("%d",3500+1500*0.97+3000*0.9+4500*0.8+26000*0.75+(a-35000)*0.7);
                return 0;
}
   为什么输入3500以上就不正确
 哪里有问题??
 
 本帖最后由 jackz007 于 2022-10-25 14:59 编辑 
        if 各个分段的条件必须闭合,而且,各不重叠。
 复制代码                if(a <= 0) printf("%d",s) ;
                else if(a > 0 && a <= 1500) printf("%d",3500+a*(1-0.03));
                else if(a > 1500 && a <= 4500) printf("%d",3500+1500*(1-0.03)+(a-1500)*0.9);
                else if(a > 4500 && <= 9000) printf("%d",3500+1500*0.97+3000*0.9+(a-4500)*0.8);
                else if(a > 9000 && a <= 35000) printf("%d",3500+1500*0.97+3000*0.9+4500*0.8+(a-9000)*0.75);
                else printf("%d",3500+1500*0.97+3000*0.9+4500*0.8+26000*0.75+(a-35000)*0.7);
 | 
 |