c9-8.c 1.2 KB

12345678910111213141516171819202122
  1. #include <stdio.h>
  2. struct student // 声明结构体类型struct student
  3. {int num;
  4. float score;
  5. struct student *next;
  6. };
  7. int main()
  8. {struct student a,b,c,*head,*p; // 定义3个结构体变量作为链表的结点
  9. a. num=10101; a.score=89.5; // 对结点a的num和score成员赋值
  10. b. num=10103; b.score=90; // 对结点b的num和score成员赋值
  11. c. num=10107; c.score=85; // 对结点c的num和score成员赋值
  12. head=&a; // 将结点a的起始地址赋给头指针head
  13. a.next=&b; // 将结点b的起始地址赋给a结点的next成员
  14. b.next=&c; // 将结点c的起始地址赋给a结点的next成员
  15. c.next=NULL; // c结点的next成员不存放其他结点地址
  16. p=head; // 使p也指向a结点
  17. do
  18. {printf("%ld %5.1f\n",p->num,p->score); // 输出p指向的结点的数据
  19. p=p->next; // 使p指向下一结点
  20. }while(p!=NULL); // 输出完c结点后p的值为NULL,循环终止
  21. return 0;
  22. }