练习-编写函数对结构体类型数据进行排序

第1关:编写函数对结构体类型数据进行排序

任务描述
本关任务:定义学生结构体数据类型,从键盘输入一批学生的信息,编写函数将这批学生按姓名排序。

相关知识
结构体变量之间整体是不可以比较大小的,结构体变量之间只能比较某个成员的大小;比较两个结构体变量是否相等与比较两个结构体变量某个成员的大小也是有区别的,可以自定义结构体比较大小的规则并且按照规则排序。

定义学生数据类型如下:

typedef struct date
{
int year;
int month;
int day;
}DATE;
typedef struct student
{
int num;
char name[20];
char sex;
DATE birthday;
float score;
}STUDENT;
如果希望按成绩排序,需要定义一个函数comparescore()来完成两个结构体变量之间的比较,函数定义如下:

int compscore(STUDENT a, STUDENT b)
{ // 比较a,b的score成员的大小,根据小于、等于、大于三种情况分别返回-1、0或1
if ( a.score == b. score )
return 0;
else
if( a. score < b. score )
return -1;
else
return 1;
}
对学生结构体数组按成绩从高到低用选择法进行排序,定义sortscore()函数如下:

void sortscore(STUDE

你可能感兴趣的:(Educoder实训,数据结构,算法,c++)