【C语言】结构体数组:学生成绩排序
#include<stdio.h>
struct student
{
double xuehao;
char xingming[100];
int nian,yue,ri;
}s1[100];
void paixu(struct student s1[],int n)
{
struct student s2;
int i,j;
for(i=0;i<n;i++)
for(j=i;j<n-1;j++)
{
if(s1[j].nian<s1[j+1].nian)
{
s2=s1[j+1];
s1[j+1]=s1[j];
s1[j]=s2;
}
}
}
int main()
{
int k,n,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%lf",&s1[i].xuehao);
scanf("%s",&s1[i].xingming);
scanf("%d",&s1[i].nian);
}
paixu(s1,n);
for(k=0;k<n;k++)
printf("%.0f %s %d\n",s1[k].xuehao,s1[k].xingming,s1[k].nian);
}
}
运行结果