用C语言,先创建一个线性表(内容随机),再写一个求该线性表中元素个数的函数,并把个数打印出来
时间: 2024-10-14 17:05:50 浏览: 22
线性表基本操作函数定义
4星 · 用户满意度95%
在C语言中,你可以通过以下几个步骤来创建一个动态数组(模拟线性表)并计算其中元素的数量:
1. **创建动态数组**:
```c
#include <stdio.h>
#include <stdlib.h> // 包含处理内存分配的头文件
// 假设我们使用整型作为元素类型
typedef struct {
int* data; // 存储元素的指针
size_t size; // 当前元素的数量
size_t capacity; // 数组的容量
} List;
List* create_list(size_t capacity) {
List* list = (List*)malloc(sizeof(List));
if (list == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
list->data = (int*)malloc(capacity * sizeof(int)); // 分配内存
list->size = 0;
list->capacity = capacity;
if (list->data == NULL) {
free(list);
return NULL;
}
return list;
}
// 添加随机元素到列表
void add_random_element(List* list, int max_value) {
srand(time(NULL)); // 设置随机种子
list->data[list->size] = rand() % max_value; // 随机生成一个0到max_value之间的整数
list->size++;
}
```
2. **求解元素个数并打印**:
```c
void print_size_and_destroy(List* list) {
printf("The number of elements in the list is: %zu\n", list->size);
// 清理内存
for (size_t i = 0; i < list->size; i++) {
free(list->data[i]);
}
free(list->data);
free(list);
}
```
**完整示例**:
```c
int main() {
// 创建一个容量为5的列表
List* list = create_list(5);
// 添加几个随机元素
const int max_value = 100;
for (int i = 0; i < 3; i++) {
add_random_element(list, max_value);
}
// 打印元素个数
print_size_and_destroy(list); // 这将释放已分配的内存
return 0;
}
```
在这个例子中,程序首先会创建一个可以存储5个元素的动态数组,然后添加3个随机值。`print_size_and_destroy`函数用于显示元素数量并将列表及其内部数据结构删除。
阅读全文