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

单链表实现学生成绩从高到低排序(C语言)

2016-09-09 09:59 381 查看
#include"stdio.h"

#include"stdlib.h"

#include"string.h"

typedef struct student

{

int score;//学生成绩

struct student *next;

}student;

student *input(student *stu);//输入成绩

void output(student *s);//打印成绩

int main()

{ student *s,*stu;

stu=(student *)malloc(sizeof(student ));//建表 (含有头结点)

stu->next=NULL;

s=input(stu);

output(s);

system("pause");

return 1;

}

student *input(student *stu)

{ int i,a;

student *p,*q;

for(i=0;i<10;i++)

{

printf("请输入学生分数:\n");

scanf("%d",&a);

q=stu;

p=(student *)malloc(sizeof(student));

p->score=a;

while(q->next!=NULL)//找到插入节点的

{

if(q->next->score < p->score)

break;

q=q->next;

}

p->next=q->next;//头插法实现从高到低

q->next=p;

}

return stu;

}

void output(student *s)

{ student *p=s->next;

while(p!=NULL)//打印成绩

{

printf("%d ",p->score);

p=p->next;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: