数组中的非重复元素

时间:2018-01-23 20:10:37

标签: c++ arrays loops random

#include <iostream>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand(time(NULL)); //initialize the random seed

    while (true) {
        const char arrayNum[4] = { '1', '3', '7', '9' };
        int RandIndex = rand() % 4; //generates a random number between 0 and 3
        cout << arrayNum[RandIndex];
    }
}

当生成这些数字时,其中一些正在重复,我不想要这个。这是一种方法吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个bool数组,指示索引是否已被使用。

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;


int main()
{
    srand(time(NULL)); //initialize the random seed
    const char arrayNum[4] = { '1', '3', '7', '9' };
    bool taken[4] = { false };
    int RandIndex;
    for(int i = 0; i < 4; i++){
        do{
             RandIndex = rand() % 4;
        }while(taken[RandIndex]);
        taken[RandIndex] = true;
        cout << arrayNum[RandIndex];
    }
}