在C語言中,可以使用隨機數生成函數和數組的方式來實現隨機數不重復的功能。具體步驟如下:
使用srand函數設置隨機數的種子,可以使用當前時間作為種子,確保每次運行程序時種子值不同。
聲明一個數組,用于存儲已生成的隨機數。
使用循環生成隨機數,并判斷該隨機數是否已存在于數組中,若不存在則將其添加到數組中,否則重新生成隨機數。
重復步驟3,直到生成足夠數量的不重復隨機數。
下面是一個示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 10 // 生成的隨機數個數
#define MAX_RANGE 100 // 隨機數的范圍
int main() {
int random_nums[MAX_NUM]; // 用于存儲隨機數的數組
int i, j, num;
srand((unsigned) time(NULL)); // 設置隨機數種子為當前時間
for (i = 0; i < MAX_NUM; i++) {
do {
num = rand() % MAX_RANGE + 1; // 生成隨機數
for (j = 0; j < i; j++) {
if (num == random_nums[j]) {
break; // 若隨機數已存在于數組中,則重新生成
}
}
} while (j < i);
random_nums[i] = num; // 添加隨機數到數組中
}
// 打印生成的隨機數
for (i = 0; i < MAX_NUM; i++) {
printf("%d ", random_nums[i]);
}
return 0;
}
運行上述代碼,即可生成指定個數(MAX_NUM)的不重復隨機數,并打印輸出。