做一个基于c语言的可以在数字1-38固定范围之间随机抽数并且不会重复的程序
时间: 2023-12-10 10:39:55 浏览: 92
以下是一个基于C语言的可以在数字1-38固定范围之间随机抽数并且不会重复的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 38
int main()
{
int nums[MAX_NUM] = {0};
int count = 0;
int num;
srand((unsigned)time(NULL));
while (count < MAX_NUM) {
num = rand() % MAX_NUM + 1;
if (nums[num - 1] == 0) {
nums[num - 1] = 1;
count++;
printf("%d ", num);
}
}
return 0;
}
```
该程序使用了一个长度为38的数组来记录已经生成的数字,初始值全部为0。每次生成一个随机数后,若该数未被使用过,则将对应数组元素置为1,同时计数器加1,并输出该数。若该数已经被使用过,则直接跳过不进行处理,直到生成了38个不重复的数字为止。
注意:由于程序使用了rand()函数来生成随机数,因此每次运行结果可能会不同。
阅读全文