日常踩坑——rand()总是出现重复数据

写了一个生成随机数组的函数,然后跑出来,结果总是……

然后,很奇怪的是一步一步调试,它就没问题了,WTF???

问题出在:重复写了srand(time(NULL)),只保留一个就好了。

int* getRandomArray(int size, int value) {
    //srand((unsigned)time(NULL));
    int *a = new int[size];
    for (int i = 0; i < size; i++) {
        a[i] = (rand() % value) - (rand() % value);
    }
    return a;
}

int main() {
    srand((unsigned)time(NULL));
    for (int i = 0; i < 15; i++) {
        int *a = getRandomArray(15, 100);
        for (int i = 0; i < 15; i++)cout << a[i] << " ";
        cout << endl;
        delete[]a;
        a = NULL;
    }
    return 0;
}

 

posted @ 2019-01-16 15:17  czc1999  阅读(467)  评论(0编辑  收藏  举报