【问题描述】
学生的记录由姓名和成绩组成,在主函数中循环输入4名学生的数据并用结构体数组存储,请编写函数StructSort,按分数的高低降序排列输出学生的姓名和分数。
要求:
使用结构体:
struct Student
{
char name[10];
int score;
};
使用子函数:
void StructSort(struct Student stu[],int n)
【输入形式】
依次输入4名学生的姓名和分数
【输出形式】
按分数降序输出学生信息
【样例输入】
KOBE 97
YAO 98
HC 99
JAMES 96
【样例输出】
HC 99
YAO 98
KOBE 97
JAMES 96
#include<stdio.h>
struct Student
{
char name[10];
int score;
};
void StructSort(struct Student stu[],int n)
{
int i,j,k;
struct Student temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(stu[j].score<stu[j+1].score)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
for(k=0;k<n;k++)
{
printf("%s %d\n",stu[k].name,stu[k].score);
}
}
int main()
{
struct Student p[4];
int i;
for(i=0;i<4;i++)
scanf("%s %d",p[i].name,&p[i].score);
StructSort(p,4);
return 0;
}