C语言实现随机抽取1-150不重复数字
#include <stdio.h> #include <stdlib.h> #include <time.h>
#define MAX_NUM 150 #define SELECT_NUM 78
int main() { int nums[MAX_NUM]; int selected[SELECT_NUM]; int i, j, r;
// 初始化数组
for (i = 0; i < MAX_NUM; i++) {
nums[i] = i + 1;
}
// 随机选取
srand((unsigned)time(NULL));
for (i = 0; i < SELECT_NUM; i++) {
r = rand() % (MAX_NUM - i);
selected[i] = nums[r];
// 从数组中删除已选取的数
for (j = r; j < MAX_NUM - i - 1; j++) {
nums[j] = nums[j + 1];
}
}
// 输出结果
printf('随机选取的%d个数为:\n', SELECT_NUM);
for (i = 0; i < SELECT_NUM; i++) {
printf('%d ', selected[i]);
}
printf('\n');
return 0;
}
原文地址: https://www.cveoy.top/t/topic/lfbD 著作权归作者所有。请勿转载和采集!