我正在尝试制作一个生成随机数的程序,直到它找到一组预定义的数字(例如,如果我有一组我最喜欢的 5 个数字,我需要玩多少次才能让计算机随机找到相同的数字) . 我写了一个简单的程序,但不理解结果,这似乎与我的预期有点无关,例如结果不一定包含所有预定义的数字,有时它会包含(即使这样也不会停止循环从运行)。我认为问题出在逻辑运算符“&&”上,但不确定。这是代码:
const int one = 1;
const int two = 2;
const int three = 3;
使用命名空间标准;
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)。这更好,但是即使顺序不同,只有数字,我该怎么做才能使循环停止?感谢您的回答和帮助。