用C语言写,要求在主函数中实现该功能由用户输入顺序表的最大长度给变量 m,建立一个能存储m 个整数的空顺序表La
时间: 2024-09-22 15:02:45 浏览: 37
C语言实现顺序表操作.docx
在C语言中,你可以通过动态内存分配的方式来创建一个顺序表(数组)并允许用户输入最大长度。以下是实现这个功能的一个基本示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int* data; // 数据指针
int size; // 当前元素个数
int max_size; // 最大长度
} SequenceList;
// 初始化顺序表
void init_list(SequenceList* list, int max_size) {
list->data = (int*)malloc(max_size * sizeof(int)); // 分配空间
list->size = 0;
list->max_size = max_size;
}
// 用户输入数据并添加到列表
void input_and_add(SequenceList* list) {
int num;
printf("请输入整数(输入-1结束):");
while (scanf("%d", &num) == 1 && num != -1) { // 读取直到遇到-1
if (list->size == list->max_size) { // 如果已满
printf("列表已满,无法添加更多元素。\n");
break;
}
list->data[list->size++] = num; // 将数值添加到列表
}
free(list->data); // 使用完后释放内存
}
int main() {
int m;
printf("请输入顺序表的最大长度:");
scanf("%d", &m);
// 创建顺序表并初始化
SequenceList my_list;
init_list(&my_list, m);
// 输入数据
input_and_add(&my_list);
// 可选:展示顺序表内容
if (my_list.size > 0) {
printf("顺序表的内容:\n");
for (int i = 0; i < my_list.size; i++) {
printf("%d ", my_list.data[i]);
}
printf("\n");
}
return 0;
}
```
在这个程序中,我们首先定义了一个结构体`SequenceList`来表示顺序表,并实现了初始化、输入数据以及显示数据的方法。在`main`函数中,根据用户的输入动态创建并填充了顺序表。
阅读全文