学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 按分数的高低排列学生的记录,高分在前。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数mam和其他函数中的任何内容,仅在

admin2019-03-19  23

问题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
按分数的高低排列学生的记录,高分在前。
    注意:部分源程序在文件PROG1.C文件中。
    请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 16
typ.edef struct
{    char  num [10] ;
  int s;
} STREC;
voici  fun (STREC  a[] )
{
main ()
{ STREC  s [N]={ { "GA005" f 85},{ "GA003",76},
{ "GA002",69},{ "GA004",85},{ "GAO01" ,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") ;
    {   if ((i) 4==0)printf ("\n") ;
printf ("%s %4d ",s .num.  s .s) ;
        }
    printf ("\n") ;
    out = fopen ("out.dat","w") ;
{if ((i) %4==0 && i)  fprintf (out, "\n") ;
        fprintf (out, "%4d ",s .s) ;  }
    fprintf (out,"\n") ;
    fclose (out) ;  }

选项

答案1 STREC tmp; 2 int i,j j 3 for(i=0; i
解析 (1)在fun函数中,通过循环对成绩记录进行排序。
(2)首次查找到最大的记录,第二次循环查找第二大的记录,依次实现对成绩记录的排序。
转载请注明原文地址:https://jikaoti.com/ti/XXf0FFFM
0

最新回复(0)