输入若干个学生信息(包括学号、姓名和成绩),输入学号为0时输入结束,建立一个单向链表,再输入一个成绩值,将成绩大于等于该值的学生信息输出。
提示:
定义函数struct stud_node *Creat_Stu_Doc()完成创建链表
定义函数struct stud_node DeleteDoc(struct stud_node head,int min_score)将分数低于min_score的结点删除
定义函数void Ptrint_Stu_Doc(struct stud_node *head)打印链表
输入输出示例:括号内为说明,无需输入输出
输入样例:
1 zhang 78
2 wang 80
3 li 75
4 zhao 85
0
80
输出样例:
2 wang 80
4 zhao 85
#include<stdio.h>
#include<stdlib.h>
struct student{
int num;
char name[10];
int score;
struct student *next;
};
int main()
{ int data;
struct student *head,*p,*q;
head=(struct student *)malloc(sizeof(struct student));
head->next=NULL; p=head;
scanf("%d",&data);
while(data!=0)
{ q=(struct student *)malloc(sizeof(struct student));
q->next=NULL; q->num=data;
scanf("%s",&q->name); scanf("%d",&q->score);
p->next=q; p=q; scanf("%d",&data); }
struct student *t;
t=head->next; int x;
scanf("%d",&x);
while(t!=NULL)
{ if(t->score>=x)
{ printf("%d %s %d\n",t->num,t->name,t->score);
}
t=t->next;
}
}