#include"stdio.h" #include"math.h" main() { float x,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",y); }
上面的程序中输入3.6,2.4后,输出结果是1.600000,为什么不是1.500000。
while (1) {if (fabs(z)>1.0) {x=y;y=z;z=x/y;} else break;
由於你輸入的兩個數的/大於1.0
再X=Y表示成“X=Y=2.4”
Y=Z表示成“Y=Z=1.5”
Z=X/Y就表示成了“Z=X/Y 那它的值就成了2.4/1.5=1.6=Z”
你就是在這裡有的表示有了吱義,你要改一下程序就可以,具體如何我想你還是自己再摸索一下吧。如果還有問題可以再發表。。。我們一起討論一下啊。。。。