用C语言生成不重复的随机数数组,且不含另一个数组中的数的C语言代码
时间: 2023-05-21 19:04:56 浏览: 118
一个生成不重复且不包含另一个数组元素的随机数数组的C语言代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 10
int main() {
int original[ARRAY_SIZE] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 数组大小为 10
int exclude[ARRAY_SIZE/2] = {1, 4, 6, 7, 9}; // 需要排除的元素
int *result = (int*)malloc(ARRAY_SIZE * sizeof(int)); // 分配动态内存
int temp, i, j, n;
// 初始化随机数种子
srand((unsigned)time(NULL));
for (i = 0, n = 0; i < ARRAY_SIZE; i++) {
if (n < ARRAY_SIZE/2 && original[i] == exclude[n]) {
n++;
} else {
// 生成随机数
result[i] = original[i - n + rand() % (ARRAY_SIZE - n - i + 1)];
}
}
// 打印结果
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", result[i]);
}
printf("\n");
// 释放内存
free(result);
return 0;
}
```
该程序将`original`数组中指定的元素排除,在剩下的元素中随机生成不重复的数组。
阅读全文