首页 > 代码库 > 链表学习练习题
链表学习练习题
题目来源:SWUST OJ 程序设计C 实验六 结构体 题目三 学生结构体链表(0068)
Description
用结构体建立学生信息,学生信息包括学号、姓名、成绩,建立一个有 n 名学生的链 表, 并将链表输出。
Input
一次输入学生信息包括学号、姓名。0 0 0结束程序
Output
从链表表头到表位依次输出。
Sample Output
C1001 Li 70
M1002 He 89
E1003 Xie 83
M1004 Wu 92
E1005 Bao 80
C1001 Li 70
M1002 He 89
E1003 Xie 83
M1004 Wu 92
E1005 Bao 80
1 #include<stdio.h> 2 #include<stdlib.h> 3 #define LEN sizeof(struct student) 4 struct student//表示每个结点 5 { 6 char num[50]; 7 char name[50]; 8 float score; 9 struct student *next;//指向下一个结点10 };11 int main()12 {13 struct student *p1,*p2,*head;14 p1=p2=(struct student *)malloc(LEN);//开辟第一个结点15 scanf("%s%s%f",p1->num,p1->name,&p1->score);//输入第一个结点16 head=NULL;17 if(p1->num[0]==‘0‘&&p1->name[0]==‘0‘&&p1->score==0)//判断第一次是否结束循环18 return 0;19 for(int i=0;p1->num[0]!=‘0‘||p1->name[0]!=‘0‘||p1->score!=0;i++){//输入结束的条件20 if(i==0)21 head=p1;//链表头记录下来22 else23 {24 p2=p1;//用p2来记录p1刚刚走过的结点25 p1=(struct student *)malloc(LEN);//开辟新的结点来存储新的内容26 p2->next=p1;//p2的next指向p127 scanf("%s%s%f",&p1->num,p1->name,&p1->score);//输入结点内容28 }29 }30 p1->next=NULL;//最后的结点指向NULL31 p1=head;32 while(p1->next!=NULL){//输出数据33 printf("%s %s %g\n",p1->num,p1->name,p1->score);34 p1=p1->next;35 }36 return 0;37 }
链表学习练习题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。