一道二级C编程题

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:15:47
要求补充完整fun函数,功能是找出成绩最高的学生记录,并且通过形参返回主函数。fun函数中STU *s和*s=a[i];这些语句是我不能理解的,请求高手解释。
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 10

typedef struct ss
{
char num[10];
int s;
} STU;

void fun( STU a[], STU *s )
{int i,max=a[0].s;
for(i=0;i<N;i++)
if(a[i].s>max)
{max=a[i].s;
*s=a[i];
}

}

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;
FILE *out;
printf("***** The original data *****\n");
for ( i=0; i<N; i++ )
printf("N0=%s Mark=%d\n", a[i].num,a[i].s);
fun ( a, &m);
printf("***** THE RESULT*****\n");
pr

STU*是指传递的参数是STU类型的指针。
*s=a[i];就是简单的赋值语句,把STU数组中的第i个元素赋值给s(注:如果在main()函数中,把m声明为指针,那么程序会报错,这里采用了地址引用方法)