#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
typedef struct Lnode{
char name[100];
int score; //存储列表数据
struct Lnode *next; //存储结点的地址
}Lnode,*linklist;
Lnode *Creatlist(int n)
{
linklist L;
Lnode *s,*r=L;
int i;
L=(Lnode*)malloc(sizeof(Lnode));//为头节点分配内存空间,此处返回头指针给L;
L->next=NULL;
r=L;//将头结点首地址赋给中间变量
for(i=1;i<=n;i++)
{
printf("输入第%d个学生的名字:",i);
s=(Lnode*)malloc(sizeof(Lnode));
scanf("%s",&s->name);
printf("输入第%d个学生的成绩:",i);
scanf("%d",&s->score);
r->next=s;
r=s;
}
r->next=NULL;
return L;
}
void printlinklist(linklist L){
linklist p;
p=L->next;
while(p!=NULL){
printf("学生%s的成绩是%d ",p->name,p->score);
p=p->next;
}
printf("\n");
}
void main()
{
linklist L;
L=(Lnode*)malloc(sizeof(Lnode));
L->next=NULL;
int x,score;
char name[100];
printf("输入创建链表结点的个数n=");
scanf("%d",&x);
L=Creatlist(x);
printf("数据元素列表的内容是:\n");
printlinklist(L);
return 0;
}
12-20
457
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-09