求解!!希望高手指导
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(只有一个最高分)。*s=a[j]如何解释,求指导,谢谢
#include <stdio.h>
#include <string.h>
#define N 10
typedef struct ss
{char num[10]; int s;} STU;
fun(STU a[], STU *s)
{
int i, max=a[0].s, j=0;
for(i=1; i<N; i++)
if(max<a[i].s){
j=i;
max=a[i].s;
}
*s=a[j];
}
main ()
{STU a[N]={ {"A01",81},{"A02",89},{"A03", 66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
printf("***** The original data *****\n");
for (i=0; i< N; i++)printf("No = %s Mark = %d\n", a[i].num,a[i].s);
fun (a, &m);
printf ("***** THE RESULT *****\n");
printf ("The top : %s , %d\n",m.num, m.s);
NONO();
}
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; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s);
fun(a, &m);
fprintf (wf, "The top : %s, %d\n", m.num, m.s);
fclose(rf);
fclose(wf);
}
[ 本帖最后由 多余的流星 于 2011-9-15 15:54 编辑 ]