宿州建设工程信息网:[c]问运行结果

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 17:00:08
从键盘输入3.6 2.4 <回车>,则运行结果是?
#include<stdio.h>
#include<math.h>
main()
{ float a,y,z;
scanf("%f%f,"&x,&y);
z=x/y;
while(1)
if(fabs(z)>1.0){x=y,y=z,z=x/y;}
else break;
printf("%f\n",y);
}

答案写的是1.600000 不太明白

第一次循环z=3.6/2.4=1.5,fabs(1.5)=1.5>1,x=2.4,y=1.5,z=2.4/1.5=1.6
第二次循环fabs(1.6)>1.0,x=1.5,y=1.6,z=1.5/1.6=0.9375
的三次循环fabs(0.9375)<1.0,y=1.6

所以打印出来的是是y也就是1.6,另外由于没有指定小数位数(例如%.3f显示三位小数),所以按默认6为显示,所以结果为1.6000000

把“while(1)和”“else break"去掉!

楼上的shenxian1021 :有点责任心,不要胡说!!

同意楼上的 shenxian1021是错误的 一楼正确