日志
输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Student
{
int id;
char name[101];
int score;
struct Student *next;
} Student;
Student *ccc(int id,char *name,int score)
{
Student *xing= (Student *)malloc(sizeof(Student));
xing->id = id;
strcpy(xing->name, name);
xing->score = score;
xing->next = NULL;
return xing;
}
void aaa(Student **head,int id,char *name,int score)
{
Student *xing=ccc(id,name,score);
if (*head==NULL)
{
*head=xing;
} else
{
Student *xian=*head;
while (xian->next!=NULL)
{
xian=xian->next;
}
xian->next=xing;
}
}
void ddd(Student *head)
{
Student *xian=head;
while (xian!=NULL)
{
printf("%d %s %d\n",xian->id,xian->name,xian->score);
xian=xian->next;
}
}
void fang(Student *head)
{
Student *temp;
while (head != NULL)
{
temp = head;
head = head->next;
free(temp);
}
}
int main()
{
Student *head = NULL;
int id;
char name[101];
int score;
while (scanf("%d",&id)&&id!=0)
{
scanf("%100s %d",name,&score);
aaa(&head,id,name,score);
}
ddd(head);
fang(head);
return 0;
}