练习12 结构体排序

发布 2021-05-29 15:39:28 阅读 7047

定义一个5个元素的 struct student 数组,1)从键盘输入5个学生的信息。

2)按总分降序排序。

3)按语文成绩降序排序。

4)按姓名升序排序。

struct student

char name[20];

float chinese,math,english,score;

void input(struct student *s, int n)

int i;

printf("请输入%d个学生",n);

for(i=0;iscanf("%s%f%f%f",s[i].name,

s[i].chinese,&s[i].math,

s[i].english);

void output(struct student *s, int n)

int i;

for(i=0;iprintf("%s %4.2f %4.2f %4.2f",s[i].name, s[i].chinese,s[i].math,

s[i].english);

void swap(struct student *a,struct student *b)

struct student t;

/printf("a=%d,b=%d",*a,*b);

strcpy(

strcpy((*a).name ,(b).name);

*a).chinese=(*b).chinese;

*a).math=(*b).math;

*a).english=(*b).english;

*a).score=(*b).score;

strcpy((*b).name ,

*b).chinese=

*b).math=

*b).english=

*b).score=

/printf("a=%d,b=%d",*a,*b);

/按总分降序排序。

void sortbyscore(struct student *s, int n)

int i,j;

/计算每个学生的总成绩。

for(i=0;is[i].score=s[i].chinese+s[i].math+s[i].english;

/按总分降序排序,使用冒泡排序。

for(i=0;i{ for(j=0;jif(s[j].scoreswap(&s[j],&s[j+1]);

/按语文成绩降序排序。

void sortbychinese(struct student *s, int n)

int i,j;

/按语文成绩降序排序,使用冒泡排序。

for(i=0;i{ for(j=0;jif(s[j].chineseswap(&s[j],&s[j+1]);

/按姓名升序排序。

void sortbyname(struct student *s, int n)

int i,j;

/按语文成绩降序排序,使用冒泡排序。

for(i=0;i{ for(j=0;jif(strcmp(s[j].name,s[j+1].name)>0)

swap(&s[j],&s[j+1]);

void main()

struct student s[5];

input(s,5);

output(s,5);

sortbyscore(s,5);

printf("按总分降序排序后:");

output(s,5);

sortbychinese(s,5);

printf("按语文成绩降序排序后:");

output(s,5);

sortbyname(s,5);

printf("按姓名升序排序后:");

output(s,5);

练习:1、编写程序,定义一个结构体类型student,含学生的姓名、学号、**号码和生日(结构体)。分别使用函数实现下面功能:

1)给5名学生输入以上信息。

2)输入一个学号,然后查找是否存在该学号的学生。如果找到则输出,否则提示“不存在”。

按生日升序排序。

结构体练习

1 include student void func struct student s int n void main func s,4 for i 0 i 4 i printf 5s f s i name,s i score void func struct student s int n in...

数据结构排序练习

1 在待排序的元素序列基本有序的前提下,效率最高的是 c a 插入排序 b 选择排序 c 快速排序 d 归并排序。2 一组数为 46,79,56,38,40,84 则利用堆排序的方法建立的初始堆为 38 40 56 79 46 84 3 一组数为 46,79,56,38,40,84 则利用快速排序法...

结构体编程练习

一 实验目的 1 理解结构体和共用体的作用功能 2 掌握结构体类型变量的定义方法 3 掌握结构体变量的使用方法 4 掌握结构体数组,并能较熟练应用 5 理解指向结构体类型数据的指针。二 实验内容及要求 1 用结构体实现在屏幕上模拟显示一个数字式时钟 思考题 1 用结构体指针作为函数参数与用结构体变量...