用C语言输入n个整数链式存放并输出最大值
时间: 2023-05-26 14:02:33 浏览: 115
链表是一种动态数据结构,可以根据数据的增减自动扩展或缩小空间。以下是用C语言实现输入n个整数链式存放并输出最大值的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
struct ListNode {
int val;
struct ListNode* next;
};
int main() {
int n, num;
scanf("%d", &n); // 输入链表节点个数
struct ListNode* head = NULL; // 定义链表头指针
struct ListNode* tail = NULL; // 定义链表尾指针
// 循环输入n个整数
for (int i = 0; i < n; i++) {
scanf("%d", &num);
// 创建新的节点并赋值
struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
node->val = num;
node->next = NULL;
// 如果链表为空,设置头指针和尾指针为该节点
if (head == NULL) {
head = node;
tail = node;
} else {
// 否则将该节点添加到链表末尾
tail->next = node;
tail = node;
}
}
// 查找链表中的最大值并输出
int max_val = head->val;
struct ListNode* p = head->next;
while (p != NULL) {
if (p->val > max_val) {
max_val = p->val;
}
p = p->next;
}
printf("%d", max_val);
// 释放链表内存
struct ListNode* q = head;
while (q != NULL) {
head = q;
q = q->next;
free(head); // 释放节点内存
}
return 0;
}
```
在输入n个整数后,程序会创建一个空链表。然后循环输入n个整数,并将它们分别存储在链表节点中。最后,程序会遍历链表查找其中的最大值,并输出该值。
为了释放动态分配的空间,程序还需要循环遍历链表并释放各个节点的内存。
阅读全文