问题 问答题

已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio. h>
#include<string. h>
#include<aonio .h>
#define N 10
typedef struct ss
char num[10];
iht s;
STU;
fun(STU ail, STU *s)

main()

STU a[N]= "A01",81, "A02",89,
"A03", 66 , "A04", 87 , "A05", 77 ,
"A06", 90 , "A07", 79, "A08", 61 ,
"A09", 80 ), "Al 0", 71 , m;
int i;
clrscr 0;
printf ("*****The original data*****");
for (i=0; i<N; i++)
printf ("No=%s Mark=%d\n", ail] .num,
a[i] .s);
fun (a, &m);
printf ("*****THE RESULT*****\n");
printf ("The lowest :%s, %d\n",m.num,
m.s);

答案

参考答案:

 fun(STU a[], STU *s)

{

int i;

*s=a [0];

for (i=0; i<N; i++) /*先认为第A个值最小*/

if (s->s>a Ii] . s) /*如果在循环的过程中再发现比第A个值更小的则赋给*s*/

*s=a [i];

}

解析:

我们先认为第1个值最小,即*s=a[0]语句,如果在循环的过程中再发现比第1个值更小的随即赋给该*s就可以了。另外,还涉及到结构体中的指向运算符,请学习者注意。若要找出最高成绩则if()中的条件改成s->s<a[i].s即可。

填空题
单项选择题