c语言 从键盘输入若干个整数,当输入-1时结束,输入的数据作为新结点的值,把结点添
时间: 2023-11-30 10:01:04 浏览: 143
首先,我们需要声明一个链表的结构体,结构体中包含一个整数型的数据成员和一个指向下一节点的指针。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
int main() {
struct Node* head = NULL; // 初始化头节点为空
struct Node* current = NULL; // 初始化当前节点为空
int num;
printf("请输入整数,输入-1结束:\n");
while(1) {
scanf("%d", &num); // 从键盘读取一个整数
if(num == -1) {
break; // 结束循环
}
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); // 为新节点分配内存
newNode->data = num; // 设置新节点的值
newNode->next = NULL; // 初始化新节点的指针为空
if(head == NULL) {
head = newNode; // 如果头节点为空,设置新节点为头节点
} else {
current->next = newNode; // 如果当前节点不为空,将新节点添加到当前节点的下一个位置
}
current = newNode; // 将当前节点指向新节点
}
printf("链表中的数字为:");
struct Node* temp = head; // 创建一个临时节点以遍历链表
while(temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
return 0;
}
```
上述代码中,我们首先声明了一个结构体`Node`来表示链表的每个节点,其中`data`用于存储输入的整数,`next`用于指向下一个节点。然后,我们在`main`函数中声明了一个头节点`head`和一个当前节点`current`。
在输入循环中,我们读取用户的输入,当输入-1时,退出循环。对于每个输入的整数,我们动态地为其创建一个新节点,并将输入值赋予新节点的`data`成员。然后,我们根据链表是否为空来决定将新节点设置为头节点还是添加到当前节点的下一个位置,并更新当前节点为新节点。
最后,我们遍历链表,并输出每个节点的值。这样就完成了从键盘输入若干个整数,以链表形式存储的功能。
阅读全文