【发布时间】:2015-03-21 18:25:01
【问题描述】:
我有一个包含 4 个数字的数组,但在检查重复项时遇到了问题。我的印象是,如果我为 arr[i] 随机化数字,那么对于 arr[j],我可以比较它们是否重复,如果为真,则再次随机化。如何检查数组的元素是否重复/重复?
int arr[4];
srand(time(0));
for(int i=0; i<4; i++)
{
arr[i] = rand() % 10;
for(int j=i+1; j<4; j++)
{
arr[j] = rand() % 10;
if(arr[j] == arr[i])
{
arr[i] = rand() % 10;
}
}
}
for(int i=0; i<4; i++)
cout << arr[i] << endl;
【问题讨论】:
-
标签中有“排序”,但代码中没有。也不清楚[重新]随机化数组的目的是什么。无论如何,我相信您正在寻找的术语/方法是“随机洗牌” - 这就是强力球彩票或洗牌的工作原理。 (寻找这些会导致相关的问题/答案。)