1752: 学生数据排序

Posted cy846586184

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1752: 学生数据排序相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
struct student
{
char name[9];
long no;
int score[4];
};
void input(struct student stu[100],int n)
{
int i;
for(i=1;i<=n;i++)
{
scanf("%ld %s %d %d %d",&stu[i].no,&stu[i].name,&stu[i].score[1],&stu[i].score[2],&stu[i].score[3]);
stu[i].score[0]=stu[i].score[1]+stu[i].score[2]+stu[i].score[3];
}
return;
}
void sort(struct student stu[100],int n)
{
struct student t;
int i,j;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(stu[i].score[0]<stu[j].score[0] || stu[i].score[0]==stu[j].score[0] && stu[i].no>stu[j].no)
{
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
}
return;
}
void print(struct student stu[100],int n)
{
int i;
for(i=1;i<=n;i++)
{
printf("%d ",i);
printf("%ld %s %d %d %d %d ",stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3]);
}
return;
}
int main()
{
int n;
struct student stu[100];
while(scanf("%d",&n)!=EOF)
{
input(stu,n); //读入n个学生的数据
sort(stu,n); //按照总分降序排序,如果总分相同的学号小的在前面
print(stu,n); //输出n个学生的信息
}
return 0;
}

以上是关于1752: 学生数据排序的主要内容,如果未能解决你的问题,请参考以下文章

1752:鸡兔同笼(2.1)

成绩排序

1061.成绩排序

尝试根据已排序的学生ID显示来自文件的学生数据

数据库查询分组排序

华科机考:成绩排序