2012-12-04 132 views
0

我想知道爲什麼我的scanf在我問兩個參數時還在繼續?scanf in do-while循環

do { 
    scanf("%f %f\n", &a,&b); 
    printf("a=%f; b=%f;\n",a,b); 
    printf("f(a)=%f; f(b)=%f; f(a)*f(b)=%f;\n",f(a),f(b),f(a)*f(b)); 
} 
while(a>=b || f(a)*f(b)>=0); 

1 
2 
3 
a=1.000000; b=2.000000; 
f(a)=-3.281718; f(b)=-0.610944; f(a)*f(b)=2.004947; 
1 5 
a=3.000000; b=1.000000; 
f(a)=10.085535; f(b)=-3.281718; f(a)*f(b)=-33.097884; 

預先感謝您

+1

刪除'\ n'在scanf() – Omkant

+0

中複製! 謝謝! –

回答

1
scanf("%f %f \n ", &a,&b); 

成\ n在年底使scanf函數忽略這將終止,否則輸入第一個換行符。從scanf函數

scanf("%f %f ", &a,&b); 
+0

正常工作 謝謝! –

+0

如果這有幫助,那麼選擇它作爲解決問題的正確答案。 – asheeshr

1

刪除\ N:

這將正常工作。 (「%f%f」,& a,& b);