我試圖做一個程序產生的隨機數,直到找到一組預定義的數字(例如,如果我有一組我5個喜愛的數字,多少次,我需要打的讓電腦隨機找到相同的號碼)。我已經寫了一個簡單的程序,但不明白這似乎是稍稍無關我所期望的結果,例如結局不一定包含所有預定義的數字有時它(甚至不停止循環從運行)。我認爲,問題出在邏輯運算符「& &」但我不知道。這裏是代碼:C++的隨機數的邏輯運算符奇怪的結果
const int one = 1;
const int two = 2;
const int three = 3;
using namespace std;
int main()
{
int first, second, third;
int i = 0;
time_t seconds;
time(&seconds);
srand ((unsigned int) seconds);
do
{
first = rand() % 10 + 1;
second = rand() % 10 + 1;
third = rand() % 10 + 1;
i++;
cout << first<<","<<second<<","<<third<< endl;
cout <<i<<endl;
} while (first != one && second != two && third != three);
return 0;
}
,這裏是出可能的結果:
3,10,4
1 // itineration variable
7,10,4
2
4,4,6
3
3,5,6
4
7,1,8
5
5,4,2
6
2,5,7
7
2,4,7
8
8,4,9
9
7,4,4
10
8,6,5
11
3,2,7
12
我也注意到,如果我使用||操盤& &的循環將執行,直到找到確切的數字尊重其中的變量設置(在這裏:1,2,3)的順序。這是更好的,但是我應該怎麼做循環停止,即使訂單不一樣,只有數字?感謝您的回答和幫助。
請編輯這個問題,包括你有更新試圖發佈爲[新問題](http://stackoverflow.com/questions/12182551/negation-before-brackets)。 –