创建线性表,形参中i代表表长,从键盘输入数据,回车结束
时间: 2024-10-14 07:09:55 浏览: 20
数据结构实验线性表(用java创建顺序表与链表并解决实验题目)
5星 · 资源好评率100%
在C语言中,创建一个动态数组(也称为线性表)并从键盘输入数据,可以通过以下步骤完成:
首先,我们需要定义一个结构体(如果数据有特定类型),然后使用`malloc`分配内存空间来存储数据。在这里,我们假设要创建的是整型数组,形参`i`表示数组的长度。
```c
#include <stdio.h>
#include <stdlib.h>
// 如果你需要保存更复杂的数据,这里可以换成对应的结构体定义
typedef struct {
int value;
} ListElement;
void createList(int i) {
// 分配i个元素的空间
ListElement *list = (ListElement*) malloc(i * sizeof(ListElement));
if (list == NULL) {
printf("Memory allocation failed.\n");
return;
}
int input;
for (int j = 0; j < i; j++) {
// 读取用户输入,直到遇到换行符
scanf("%d", &input);
// 将输入的值存入数组
list[j].value = input;
// 换行以便于下一次输入
getchar();
}
// 数据输入完毕后,可以做其他操作(如显示列表、排序等)
printf("Data entered:\n");
for (int k = 0; k < i; k++) {
printf("%d ", list[k].value);
}
printf("\n");
// 释放内存
free(list);
}
int main() {
int tableLength;
printf("Enter the length of the linear table: ");
scanf("%d", &tableLength);
createList(tableLength);
return 0;
}
```
在这个代码片段中,`createList`函数接受表长`i`作为参数,创建并填充数组。`main`函数负责获取用户的输入,调用`createList`函数处理数据,并在程序结束时释放内存。
阅读全文