#include <stdio.h>
#include <malloc.h>
#define N 3
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*Linklist;
void Greate(Linklist &L,int n)
{
int i,j=1;
Linklist p;
L=(Linklist)malloc(sizeof(LNode));
L->next=NULL;
printf("输入你要输入的数字:\n");
for(i=n;i>0;--i)
{
p=(Linklist)malloc(sizeof(LNode));
printf("000%d :",j++);
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void display(Linklist &L)
{
int j=1;
printf("输出你写入的成绩:\n");
Linklist p=L->next;
while(p!=NULL)
{
printf("000%d :%d\n",j++,p->data);
p=p->next;
}
}
void averge(Linklist &L,int &e)
{
Linklist p=L->next;
int sum=0;
while(p!=NULL)
{
sum+=p->data;
p=p->next;
}
printf("学生的总分数是:%d\n",sum);
e=sum/N;
}
void insert(Linklist &L,int i,int e)
{
Linklist s,p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
j++;
}
s=(Linklist)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
}
void delet(Linklist &L,int i,int &e)
{
Linklist q,p=L;
int j=0;
while(p&&j<i)
{
p=p->next;
j++;
}
q=p->next;
e=q->data;
p->next=q->next;
free(q);
}
void main()
{
Linklist La;
int e;
Greate(La,N);
display(La);
averge(La,e);
printf("学生的平均成绩是:%d\n",e);
printf("插入到第二位置:\n");
insert(La,2,90);
display(La);
printf("删除第三个位置上的元素:\n");
delet(La,3,e);
printf("删除的元素为:%d\n",e);
display(La);
}