练习创建和释放链表:【改编例8.4】输入一组整型整数,以-1结束。输出它们的总和、最大数和最小数。
时间: 2024-05-05 11:20:34 浏览: 13
好的,让我来回答你的问题。这是一个练习创建和释放链表的问题,你可以按照以下步骤来实现:
1. 首先,输入一组整型整数,以-1结束,并将它们保存到一个动态创建的链表中。
2. 遍历这个链表,找到最大值、最小值和总和。
3. 输出最大值、最小值和总和。
以下是示例代码:
```
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
int main() {
int num;
struct node *head, *p, *prev;
head = NULL;
prev = NULL;
int sum = 0, max = -99999, min = 99999;
printf("请输入整数(以-1结束):\n");
scanf("%d", &num);
while (num != -1) {
p = (struct node *) malloc(sizeof(struct node));
p->data = num;
p->next = NULL;
if (head == NULL) {
head = p;
} else {
prev->next = p;
}
prev = p;
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
sum += num;
printf("请输入整数(以-1结束):\n");
scanf("%d", &num);
}
printf("总和:%d\n", sum);
printf("最大数:%d\n", max);
printf("最小数:%d\n", min);
p = head;
while (p != NULL) {
prev = p;
p = p->next;
free(prev);
}
return 0;
}
```
希望这可以帮助你解决问题!