2.程序通过定学生结构体数组,存储了若干名学生的学号,姓名和3门课程的成绩,函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典(从小到大)排序
#include<stdio.h>
#include<string.h>
struct student
{ long sno;
char name[10];
float score[3];
};
void fun(struct student a[],int n)
{ struct student t;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(a[i].name,a[j].name)>0)
{ t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int main()
{ struct student s[4]={{10002,"ZhangSan",95,80,88},
{10003,"CaoKai",75,68,88},
{10004,"FangFang",90,82,87},
{10004,"LiSi",85,70,78}};
int i,j;
printf("\n\nTheoriginal data:\n\n");
for(j=0;j<4;j++)
{ printf("\nNo:%ld Name:%-8s Scores:",s[j].sno,s[j].name);
for(i=0;i<3;i++)
printf("%6.2f",s[j].score[i]);
printf("\n");
}
fun(s,4);
printf("\n\nThe data after sorting:\n\n");
for(j=0;j<4;j++)
{ printf("\nNo:%ld Name:%-8s Scores:",s[j].sno,s[j].name);
for(i=0;i<3;i++)
printf("%6.2f",s[j].score[i]);
printf("\n");
}
return 0;
}