prog46.c

来自「c题库」· C语言 代码 · 共 55 行

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

#include <stdio.h>
#define   N   16
typedef   struct
{  char  num[10];
   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[i].num,s[i].s);
   }
   printf("\n");
   out=fopen("out16.dat","w") ;
   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) ;
}

/*
答案:
	int i,j;
	STREC  t;
	for(i=0;i<N;i++)
		for(j=i;j<N;j++)
			if(a[i].s<a[j].s)
			{	t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?