用c语言建立一个线性表,接收用户从键盘输入的数据,以“0”表示输入结束。
时间: 2024-10-08 18:24:40 浏览: 42
C语言实现简易文本编译器.doc
5星 · 资源好评率100%
在C语言中,我们可以使用动态内存分配和结构体来建立一个简单的线性表,用于接收用户输入的数据。这里我们假设使用单向链表作为实现方式,因为它的插入和删除操作相对方便。
首先,我们需要定义一个链表节点结构:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data; // 节点的数据域
struct Node* next; // 指向下一个节点的指针
} Node;
// 添加新节点到链表的函数
void addNode(Node** head, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = data;
newNode->next = *head;
*head = newNode;
} else {
printf("Memory allocation failed.\n");
}
}
int main() {
Node* head = NULL; // 初始链表为空
int input;
while (1) { // 循环接收用户输入直到遇到"0"
printf("Enter a number (or '0' to exit): ");
scanf("%d", &input);
if (input == 0) break; // 用户输入0,退出循环
addNode(&head, input); // 将输入添加到链表
}
// 打印链表内容
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
return 0;
}
```
在这个例子中,`addNode`函数负责将新节点添加到链表头部,主循环会持续接收用户输入直到用户输入0为止。然后,遍历链表并打印出所有输入的数据。
阅读全文