学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 [注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所

admin2013-06-12  43

问题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
   [注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   [试题源程序]
   #include<stdio.h>
   #define N 16
   typedef struct
   {
   char num[i0];
   int s;
   }STREC;
   int fun(STREC a[])
   {
   }
   main()
   {
   STREC s[N]={
   {"GA005", 85}, {"GA003", 76}, {"GA002", 69}, {"GA004", 85},
   {"GA001", 91}, {"GA007", 72}, {"GA008", 64}, {"GA006", 87},
   {"GA015", 85}, {"GA013", 91}, {"GA012", 64}, {"GA014", 91},
   {"GA011", 66}, {"GA017", 64}, {"GA018", 64}, {"GA016", 72}
   };
   int i;
   FILE *out;
   fun(s);
   printf("The data after sorted:\n");
   for(i=0;i<N; i++)
   {
   if((i)%4==0)
   printf("\n");
   printf("%s%4d", s. num, s.s);
   }
   printf("\n");
   }

选项

答案#include<stdi0.h> #define N 16 typedef struct { char num[10]; int s; }STREC; int fun(STREC a[]) { STREC tmp; int i, j; for(i=0; i<N; i++) for(j=i+1; j<N; J++) if(a[i].s<a[j].S) { tmp=a[i]; a[i]=a[j]; a[j]=tmp; } }

解析
转载请注明原文地址:https://kaotiyun.com/show/1rJp777K
0

最新回复(0)