问答题
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数 fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 10
typedef struct ss
{ char num[10]; int s; } STU;
fun( STU a[], STU *s )
{
}
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( );
}
【正确答案】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] ;
}