c语言:(结构体)建立3个学生数据节点构成的单向动态链表,向每个节点输入学生得数据(包括学号、姓名、成绩),然后逐个输出节点中的数据
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define LE sizeof(struct student) //LE代表struct student类型数据的字节
struct student
{
int num;
int score;
char name[10];
struct student *next; //指针变量成员
};
int main(){
struct student *head, *p;
head = p = (struct stuent *)malloc(LE); //开辟一个新单元,head=p指向它
scanf("%d %d %s",&p->num,&p->score,p->name); //输入第一个节点
p = (struct student *)malloc(LE); //开辟第二个单元,p指向它
scanf("%d %d %s",&p->num,&p->score,p->name);
p = (struct student *)malloc(LE); //开辟第三个单元,p指向它
scanf("%d %d %s",&p->num,&p->score,p->name);
head->next = p; //第一个节点next成员指向第二个节点
p->next = p; //第二个节点next成员指向第三个节点
p ->next = NULL; //第三个节点next成员不指向任何对象
p = head; //使p指向第一个节点
printf("\n学生1:%d %d %s",p->num,p->score,p->name);
p = p->next; //使p指向第二个节点
printf("\n学生2:%d %d %s",p->num,p->score,p->name);
p ->next = NULL; //使p指向第三个节点
printf("\n学生3:%d %d %s",p->num,p->score,p->name);
return 0;
}