C语言向顺序表中输入元素
时间: 2024-09-29 08:05:48 浏览: 30
(数据结构C语言版)顺序表和单链表的逆置.docx
在C语言中,向顺序表(数组)中输入元素通常是通过循环遍历或者用户输入的方式实现的。以下是一个基本示例,它创建了一个顺序表,并允许用户依次输入元素:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int* data;
size_t size;
size_t capacity;
} List;
// 初始化顺序表
List* init_list() {
List* list = (List*)malloc(sizeof(List));
if (!list) {
printf("Memory allocation failed.\n");
return NULL;
}
list->data = malloc(1 * sizeof(int)); // 初始容量为1
list->size = 0;
list->capacity = 1;
return list;
}
// 主函数:接收用户输入并添加到列表
int main() {
List* my_list = init_list();
while (true) {
printf("Enter an integer (or 'quit' to stop): ");
char input[10];
fgets(input, sizeof(input), stdin); // 获取用户的输入,忽略回车符
if (strcmp(input, "quit") == 0) break; // 用户输入"quit"则退出
// 将字符串转换为整数
int num = -1;
sscanf(input, "%d", &num);
if (num != -1) { // 如果成功转换,插入元素
insert(my_list, num);
} else {
printf("Invalid input! Please enter a valid integer.\n");
}
}
// 输出所有元素
for (size_t i = 0; i < my_list->size; i++) {
printf("%d ", my_list->data[i]);
}
free(my_list->data); // 清理内存
free(my_list);
return 0;
}
// 插入元素到列表末尾,注意上述主函数已经包含了这个函数
void insert(List* list, int value) {
// ... 同样之前的插入操作...
}
```
在这个例子中,程序会持续提示用户输入直到用户输入"quit"为止。每次用户输入有效整数,都会将其插入到列表中。
阅读全文