c语言

C语言中随机数避免重复的方法是什么

小亿
159
2024-02-26 16:21:32
栏目: 编程语言

在C语言中,要生成不重复的随机数可以使用数组来存储已经生成的随机数,每次生成新的随机数时先检查数组中是否已经存在该随机数,如果存在则重新生成,直到生成一个不重复的随机数为止。具体步骤如下:

  1. 创建一个数组来存储已经生成的随机数,数组大小为需要生成的不重复随机数的总个数。
  2. 使用rand()函数生成随机数,并与数组中的元素进行比较,如果存在则重新生成,直到生成一个不重复的随机数。
  3. 将生成的不重复随机数存储到数组中。
  4. 重复上述步骤直到生成所有不重复的随机数。

以下是一个简单的示例代码:

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

#define NUM_RANDOM 10

int main() {
    int randomArray[NUM_RANDOM];
    int i, j, r;

    srand(time(NULL));

    for (i = 0; i < NUM_RANDOM; i++) {
        do {
            r = rand() % 100; // 生成0-99之间的随机数
            for (j = 0; j < i; j++) {
                if (r == randomArray[j]) {
                    break;
                }
            }
        } while (j < i); // 如果重复则重新生成

        randomArray[i] = r;
        printf("%d ", r);
    }

    return 0;
}

在这个示例中,我们生成了10个不重复的随机数并输出到屏幕上。请注意,在实际应用中,可以根据需要修改随机数的范围和个数。

0
看了该问题的人还看了