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: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]