己知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 注意:部分源程序存在文件PROG1.C文件中。 请勿改动主函数mai

admin2019-03-19  32

问题 己知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
    注意:部分源程序存在文件PROG1.C文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 10
typedef struct ss
{  char num[10];  int s; } STU;
void fun(STU a[],STU *s)
{
}
main ()
{ "A03",66},{ "A04",87},{ "A05",77},
{ "A06",90 },{ "A07",79},{ "A08",61},
  int i;void NONO ();
  printf("***** The original data
   for (i=0; 1< N; i++)printf("No = %S
Mark =%d\n", a .num,a.s);
     printf ("***** THE RESULT *****\n") ;
   printf ("The lowest : %s,%d\n",
m.num, m.s) ;
    NONO () ;
}
voicl NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf,*wf ;
STU a[N],m ;
int i ;
   rf = fopen ("in.dat","r") ;
   wf  =  fopen ( "out.dat","w") ;
  for (i = 0 ; i < 10; 1++) fscanf (rf,
"%s  %d", a .num, &a .s) ;
fprintf       (wf,      "The
lowest : %s,%d\n",m.num,m.s);
  fclose (rf) ;
  fclose (wf) ;
  }

选项

答案1 int i, min=a[0] .s, j=0; 2 for(i=1; ia [i] .s){ /* 如果最低分min仍大于当前分* / 4 j=i;/* 记住位置* / 5 min=a [i] .s;/* 把当前分赋值给 min* / 6 } 7 * s=a[j];

解析 (1)首先指定第一个成绩为最低分数。
(2)再使用一个for循环把所有的成绩进行比较,找出最低的分数来。
转载请注明原文地址:https://kaotiyun.com/show/MBRp777K
0

最新回复(0)