在C語言中,可以使用以下步驟生成不重復的隨機數:
stdlib.h
和 time.h
。#include <stdlib.h>
#include <time.h>
srand
函數初始化隨機數種子,以確保每次運行程序時生成的隨機數序列是不同的。srand(time(NULL));
int generatedNumbers[10];
int count = 0;
rand
函數生成隨機數,并檢查是否已生成過該數。int randomNumber;
int isDuplicate;
do {
randomNumber = rand(); // 生成隨機數
isDuplicate = 0; // 默認不重復
for (int i = 0; i < count; i++) {
if (generatedNumbers[i] == randomNumber) {
isDuplicate = 1; // 設置為重復
break;
}
}
} while (isDuplicate);
generatedNumbers[count] = randomNumber;
count++;
完整的示例代碼如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // 初始化隨機數種子
int generatedNumbers[10];
int count = 0;
for (int i = 0; i < 10; i++) {
int randomNumber;
int isDuplicate;
do {
randomNumber = rand(); // 生成隨機數
isDuplicate = 0; // 默認不重復
for (int j = 0; j < count; j++) {
if (generatedNumbers[j] == randomNumber) {
isDuplicate = 1; // 設置為重復
break;
}
}
} while (isDuplicate);
generatedNumbers[count] = randomNumber; // 保存隨機數
count++;
}
printf("生成的不重復隨機數為:\n");
for (int i = 0; i < 10; i++) {
printf("%d\n", generatedNumbers[i]);
}
return 0;
}
此示例代碼將生成10個不重復的隨機數,并將它們逐個打印出來。