您的位置:首页 > 编程语言 > C语言/C++

c语言:编写一个输出链表的函数print

2016-05-29 13:41 387 查看
编写一个输出链表的函数print。
解:程序:
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct Student)

struct Student
{
long num;
float score;
struct Student *next;
};
int n;
struct Student *creat()//建立链表的函数
{
struct Student *head;
struct Student *p1, *p2;
n = 0;
p1 = p2 = (struct Student *)malloc(LEN);
scanf("%ld,%f", &p1->num, &p1->score);
head = NULL;
while (p1->num != 0)
{
n = n + 1;
if (n == 1)
{
head = p1;
}
else
{
p2->next = p1;
}
p2 = p1;
p1 = (struct Student *)malloc(LEN);
scanf("%ld,%f", &p1->num, &p1->score);
}
p2->next = NULL;
return(head);
}

void print(struct Student *head)//输出链表的函数
{
struct Student *p;
printf("\nNow,These %d records are:\n",n);//records记录
p = head;//p指向第1个结点
if (head != NULL)//若不是空表
{
do
{
printf("%ld %5.1f\n", p->num, p->score);
p = p->next;
} while (p != NULL);
}
}

void main()
{
struct Student *head;
head= creat();//调用函数返回链表第1个结点的地址
print(head);
}
结果:
1001,77
1003,88
1005,99
0,0

Now,These 3 records are:
1001 77.0
1003 88.0
1005 99.0
请按任意键继续. . .

本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1750277
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐