C语言的一个关于链表的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:57:31
建立一个单链表,链表结点中的关键值为数值,计算平均值,并输出链表中关键值大于该平均值的结点。

#include <stdio.h>
#include <stdlib.h>
#include<conio.h>

struct list
{ int data;
struct list *next;
};

struct list *head;
int static length;//声明表长变量

struct list *creat_n()//创建有n个元素的链表
{
struct list *q,*p,*head=NULL;

printf("\n输入你所要创建的结点数: ");
scanf("%d",&length);
head=p=(list*)malloc(sizeof(list)); //创建一个新结点并用头指针指向它
printf("输入该结点的值: ");
scanf("%d", &p->data);
p->next=NULL;
for(int i=length-1;i>=1;i--)
{
q=p;
p=(list*)malloc(sizeof(list)); //创建新结点
printf("输入该结点的值: ");
scanf("%d", &p->data);
q->next=p;

}
p->next=NULL;

return head;
}
struct list * output()//输出结点值平均值函数
{ int sum,av;
struct lis