程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和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)
{
____1______ t;
int i, j;
for (i=0; i<____2_____; i++)
for (j=i+1; j<n; j++)
if (strcmp( ____3_____) > 0)
{ t = a[i]; a[i] = a[j]; a[j] = t; }
}
main()
{ struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78},
{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};
int i, j;
printf("\n\nThe original 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);
____4_____
____5_____
printf("\n");
}
}
1. struct student
2. n - 1
3. a[i].name, a[j].name
4. for (i=0; i<裤含3; i++)
5. printf("胡和笑%6.2f "棚孝, s[j].score[i]);
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; }
}
void main()
{
struct student s[4]={{10001,"ZhangSan"吵行, 95, 80, 88},{10002,"LiSi", 85, 70, 78},
{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};
int i, j;
printf("蠢袜\n\nThe original 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");
}
}
正确答案颂好芦是野带:
1. struct student
2. n - 1
3. a[i].name, a[j].name
4. for (i=0; i<袜灶3; i++)
5. printf("%6.2f ", s[j].score[i]);