我的循環不起作用執行 - 而將無法正常工作
#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數量較多它不工作。沒有輸出。
我的循環不起作用執行 - 而將無法正常工作
#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數量較多它不工作。沒有輸出。
你正在做
c = a - b;
每次迭代中,從來沒有改變a
或b
。所以在第二個例子中,c
總是等於58
,它大於b == 3
,所以循環永遠不會退出。
不幸的是我不能告訴你如何解決這個問題,因爲你沒有說這個代碼應該做什麼。
謝謝:)我現在修好了 – Camz
@Camz沒問題。請注意,「謝謝」 - 評論違反了SO的規則。相反,您可以通過點擊旁邊的複選標記來接受您認爲最有用的答案。一旦你有足夠的聲望,你可以upvote任何職位。 –
插入行'cin >> a >> b;'進入循環do-while。如果不是循環沒有意義,你應該通過條件來改變它。
無論循環執行多少次,a,b,c的值都不會改變。在c(a-b)大於或等於b的情況下,循環不會退出。這就是爲什麼你沒有得到輸出爲a = 61和b = 3。
[一遍又一遍地做同樣的事情,並期待不同的結果](http://www.brainyquote.com/quotes/quotes/a/alberteins133991 .html),我們?如果第一次出現'a - b> = b'',無論您評估相同條件的次數多少,它都會保持這種狀態。 –
減法後,你忘了把'c'的值賦給'a'或'b'嗎? – Mahesh