【PTA】【C语言】单链表基础应用(1)--创建链表

 

编程实现一个简易学生信息管理系统,按如下步骤分别用自定义函数实现:
(1) 根据输入信息创建单链表。每个学生的信息包括姓名和成绩;
(2) 输出简易学生信息管理系统(单链表)的所有学生(结点)信息。

输入格式:

根据输入的若干个学生信息创建单链表。每一行代表一个学生信息,以成绩-1作为输入的结束。

输出格式:

每个学生信息占一行,姓名和成绩之间以空格分隔,成绩保留一位小数。

输入样例:

在这里给出一组输入。例如:

Cai 61.2
Cai 64.6
Cheng 68.4
Xiao 71.2
Zhang 83.2
Liu 90.4
Xiao 92.6
Cai 96.8
xx -1

输出样例:

在这里给出相应的输出。例如:

Cai 61.2
Cai 64.6
Cheng 68.4
Xiao 71.2
Zhang 83.2
Liu 90.4
Xiao 92.6
Cai 96.8

代码如下: 

#include 
#include 
#include 
struct student
{
	char name[10];
	float score;
	struct student *next;
};

int len = sizeof(struct student);

struct student *creat()
{
	struct student *head;
	struct student *p1, *p2;
	p1 = p2 = (struct student *) malloc(len);
	scanf("%s %f",&p1 -> name, &p1 -> score);
	head = p1;
	while (p1 -> score != -1)
	{
		p2 -> next = p1;
		p2 = p1;
		p1 = (struct student *) malloc(len);
		scanf("%s %f",&p1 -> name, &p1 -> score);
	}
	p2 -> next = NULL;
	return head;
}

void print(struct student *head)
{
	struct student *p;
	p = head;
	while (p != NULL)
	{
		printf("%s %.1f\n", p -> name, p -> score);
		p = p -> next;
	}
}

int main()
{
	struct student *head;
	head = creat();
	print(head);
	return 0;
}

你可能感兴趣的:(PTA,C语言)