2015-08-30 43 views
-4

我的循環不起作用執行 - 而將無法正常工作

#include <iostream> 
using namespace std; 
int main() 
{ 
int a,b,c; 
cin >> a >> b; 
do 
{ 
    c=a-b; 
} 
while(c>=b); 
cout << c; 
} 

當我輸入5,3它的工作,但是當我試圖像輸入61和3數量較多它不工作。沒有輸出。

+1

[一遍又一遍地做同樣的事情,並期待不同的結果](http://www.brainyquote.com/quotes/quotes/a/alberteins133991 .html),我們?如果第一次出現'a - b> = b'',無論您評估相同條件的次數多少,它都會保持這種狀態。 –

+0

減法後,你忘了把'c'的值賦給'a'或'b'嗎? – Mahesh

回答

1

你正在做

c = a - b; 

每次迭代中,從來沒有改變ab。所以在第二個例子中,c總是等於58,它大於b == 3,所以循環永遠不會退出。

不幸的是我不能告訴你如何解決這個問題,因爲你沒有說這個代碼應該做什麼。

+0

謝謝:)我現在修好了 – Camz

+0

@Camz沒問題。請注意,「謝謝」 - 評論違反了SO的規則。相反,您可以通過點擊旁邊的複選標記來接受您認爲最有用的答案。一旦你有足夠的聲望,你可以upvote任何職位。 –

0

插入行'cin >> a >> b;'進入循環do-while。如果不是循環沒有意義,你應該通過條件來改變它。

0

無論循環執行多少次,a,b,c的值都不會改變。在c(a-b)大於或等於b的情況下,循環不會退出。這就是爲什麼你沒有得到輸出爲a = 61和b = 3。