在C语言中,可以使用以下步骤生成不重复的随机数:
- 引入头文件
stdlib.h
和time.h
。
#include#include
- 在程序的开始处使用
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#include #include 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个不重复的随机数,并将它们逐个打印出来。