【描述】 输人顺序表数据(第一个数为效据元素的个数,后续为数据元素),元素个数少于20个,存储到顺字表中。 【输入] 982 15 19 _输丘】 9821519 其中的creatlist 和printout 都用顺序表 用C语言写
时间: 2024-09-18 15:02:35 浏览: 19
在C语言中,你可以创建一个顺序表结构体,并分别编写`createList`函数用于初始化顺序表,以及`printOut`函数用于打印顺序表的内容。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int size;
int* data;
} SequenceList;
// 创建顺序表函数 (createList)
SequenceList* createList(int numElements) {
SequenceList* list = malloc(sizeof(SequenceList));
if (!list) {
printf("Memory allocation failed.\n");
return NULL;
}
list->size = numElements;
list->data = malloc(numElements * sizeof(int));
// 检查内存分配是否成功
if (!list->data) {
free(list);
printf("Memory allocation for data failed.\n");
return NULL;
}
// 初始化数据部分
for (int i = 0; i < numElements; i++) {
list->data[i] = 0; // 这里假设你想要全部初始化为0
}
return list;
}
// 打印顺序表函数 (printOut)
void printOut(SequenceList* list) {
if (list == NULL || list->size == 0) {
printf("Empty or invalid sequence list.\n");
return;
}
printf("Sequence List:\n");
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
int inputElements = 9;
int* elements = (int*)malloc(inputElements * sizeof(int)); // 分配输入元素的内存
// 接收用户输入并存储
scanf("%d", &inputElements);
for (int i = 0; i < inputElements; i++) {
scanf("%d", &elements[i]);
}
// 创建顺序表
SequenceList* seqList = createList(inputElements);
if (seqList != NULL) {
// 将用户输入的数据复制到顺序表
for (int i = 0; i < inputElements; i++) {
seqList->data[i] = elements[i];
}
// 打印顺序表
printOut(seqList);
// 清理内存
free(seqList->data);
free(seqList);
} else {
// 处理创建失败的情况
}
// 清理用户输入元素的内存
free(elements);
return 0;
}
```
在这个例子中,首先从用户那里接收输入元素,然后创建顺序列表并将元素添加到列表中。最后打印出列表内容并释放内存。
阅读全文