原来是我错付了 发表于 2022-10-25 14:48:25

if分支结构

#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);
                elseprintf("%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:57:58

本帖最后由 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);
页: [1]
查看完整版本: if分支结构