我目前的項目使用一個do-while循環和一個單獨的值生成函數來調用一個程序。該程序要求輸入的數量不確定,直到輸入的最後兩個數字之間的差值大於12爲止。代碼有效,但只有當它看起來很明顯。有時它會認識到bool已經被立即滿足並終止了,有時候我可以輸入15個以上的數字直到它結束,如果它甚至結束在第一位。如果可能的話,我想保持我的代碼與我目前的代碼類似。我知道我需要一個先決條件,因爲第一個輸入沒有什麼可比較的,我現在想弄明白這一點。C++爲什麼只要滿足布爾條件,我的do-while循環就無法結束?
這是到目前爲止我的代碼:
bool TwelveApart(int x, int y);
int main()
{
int num1, num2;
cout << "Enter some integers: " << endl;
do
{
cin >> num1 >> num2;
TwelveApart(num1, num2);
} while (TwelveApart(num1, num2) == false);
cout << "The difference between " << num1 << " and " << num2 << " is greater than or equal to 12." << endl;
return 0;
}
bool TwelveApart(int x, int y)
{
if (abs(x - y >= 12))
{
return true;
}
else
{
return false;
}
}
您從'x'中減去'y> = 12'。是的,你的閱讀是正確的,我相信它對你沒有任何意義......呃,就是這一點。 ;)但是我相信你現在有足夠的信息來解決你的問題。 –
不能相信我錯過了。 – JigglyBlubber