用C语言构造一个包含n个元素的一-维整型随机数组(0≤n≤100) ,其中无重复元素,使用下标法输出数组元素
时间: 2024-09-27 13:04:53 浏览: 29
在C语言中,你可以使用`rand()`函数生成随机数,并结合数组和指针来构造一个含有n个非重复元素的一维整型数组。以下是一个简单的步骤:
1. 首先,需要包含必要的头文件:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 包含时间库用于种子初始化
```
2. 定义一个函数来生成并插入随机数,直到数组满并且保证数组内无重复元素:
```c
int* create_random_array(int n) {
int* arr = (int*)malloc(n * sizeof(int)); // 分配内存空间
if (!arr) { // 检查分配是否成功
printf("Memory allocation failed.\n");
return NULL;
}
srand(time(0)); // 设置随机数种子,每次程序运行都会得到不同的序列
for (int i = 0; i < n && i < RAND_MAX; ++i) { // 循环直到数组填满或者无法再插入新值
int random_num = rand() % RAND_MAX + 1; // 生成0到RAND_MAX之间的随机数
bool is_unique = true; // 假设当前元素是唯一的
// 检查该随机数是否已存在于数组中
for (int j = 0; j < i; ++j) {
if (random_num == arr[j]) {
is_unique = false;
break;
}
}
if (is_unique) {
arr[i] = random_num; // 如果是唯一,则插入数组
} else {
--i; // 如果不是唯一,回溯并继续尝试
}
}
return arr;
}
```
3. 输出数组元素:
```c
void print_array(int* arr, int size) {
for (int i = 0; i < size; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int n = 5; // 替换为你想创建的数组长度(0≤n≤100)
int* array = create_random_array(n);
if (array) {
print_array(array, n); // 打印数组
free(array); // 释放内存
}
return 0;
}
```
阅读全文