以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组 s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。 #include<stdio.

admin2013-02-23  34

问题 以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组 s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
   #include<stdio.h>
   #define N 16
   typedef struct
   {  char num[10];
      int s;
   }STREC;
   int fun(STREC *a,STREC *b)
   {  int i,j=0,max=a[0].s;
      for(i=0;i<N;i++)
         if(max<a.s)max=a.s;
      for(i=0;i<N;i++)
      if(【  】)b[j++]=a
      return j;
   }
   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}
   };
      STREC h[N];
      int i,n;FILE*out;
      n=fun(s,h);
      printf("The%d highest score;\n",n);
      for(i=0;i<n;i++)
      printf("%s%4d\n",h.num,h.s);
      printf("\n");
      out=fopen("out15.dat","w");
      fprintf(out,"%d\n",n);
      for(i=0;i<n;i++);
      fprintf(out,"%4d\n",h.s);
      fclose(out);
    }

选项

答案max==a[i].s

解析 该程序使用循环嵌套,第1个for语句的作用是找出最大值。第2个循环的作用是找出与max相等的成绩,也即最高成绩的学生,并存入b中。
转载请注明原文地址:https://kaotiyun.com/show/cBJp777K
0

最新回复(0)