/*-------------------------------------------------------【程序设计】---------------------------------------------------------题目:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,      请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入      你编写的若干语句。-------------------------------------------------------*/#include <stdio.h>#define   N   16void wwjt ( );typedef  struct{          char  num[10];        int   s;} STREC;void  fun( STREC  a[] ){        /**********Program**********/        int i,j;        STREC t;        for(i=1;i<N;i++)            for(j=0;j<N-1;j++)                if(a[j].s<a[j+1].s){                    t = a[j];                    a[j]=a[j+1];                    a[j+1]=t;                }        /**********  End  **********/}void 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;        fun( s );        printf("The data after sorted :\n");        for(i=0;i<N; i++)        {                  if( (i)%4==0 )printf("\n");                printf("%s  %4d  ",s[i].num,s[i].s);        }        printf("\n");        wwjt( );}void wwjt( ){        FILE *in, *out ;        STREC  s[N];        int  i,j;        in=fopen("in.dat","r");        if(in==NULL)        {                printf("Please Verify The Currernt Dir..It May Be Changed");        }        out=fopen("out.dat","w");        if(out==NULL)        {                printf("Please Verify The Current Dir.. It May Be Changed");        }        for(j=0;j<N; j++)        {                fscanf(in,"%s %d",&s[j].num,&s[j].s);        }        fun(s);        for(i=0;i<N; i++)        {                  if( (i)%4==0 && i)                        fprintf(out, "\n");                        fprintf(out, "%4d  ",s[i].s);        }        fprintf(out,"\n");        fclose(out) ;}