IF语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:20:22
输入5999《回车》,结果保留小数点一位

int x;float y;
scanf("%d",&x;
if(x>=0&&x<=2999)) y=18+0.12*x;
if(x>=3000&&x<=5999) y=36+0.6*x;
if(x>=6000&&x<=10000) y=54+0.3*x;
printf("%6.1f",y);

结果是3635.4
是怎么得来的呢?

因为你输入的是5999,也就是x的值是5999.
那么进入下面的if语句组
符合这个条件:x>=3000&&x<=5999,
则执行y=36+0.6*5999 = 3635.4

输入5999,就把该值赋给了x
之后与if(x>=3000&&x<=5999) y=36+0.6*x;
的条件匹配,所以y=36+0.6*x=36+0.6*5999
当最后打印时,语句printf("%6.1f",y); 中%6.1f指输出数为float型,且整数取6位,小数取1位,因此计算36+0.6*5999,并根据以上显示规则结果为3635.4