问题 问答题

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 8
struct slist
double s;
struct slist *next;

tyPedef struct slist STREC;
double fun(STREC *h)

STREC * Creat (double *s)

STREC *h,*p,*q;
int i=0;
h=p=STREC*)malloc(sizeof(STREC));
p->S=0;
while(i<N)
/*产生8个节点的链表,各分数存入链表中*/
q=(STREC*) malloc(sizeOf(STREC));
p->S=S[i]; i++; p->next=q; p=q;

p->next=NULL;
return h;
/*返回链表的首地址*/

outlist(STREC *h)

STREC *p;
p=h;
printf("head");
do
printf("->%2.of ",p->s);p=p->next;
/*输/出各分数*/
while(p!=NULL);
printf("\n\n ");

main()

double s[N]=56,89,76,95,91,68,75,
85,min;
STREC *h;
h=creat(s);
outlist(h);
min=fun(h);
printf("min=%6.If\n ",min);

答案

参考答案:double fun(STREC *h)
{
double min=h->s;
while(h!=NULL) /*通过循环找到最低分数*/
{if(min>h->s)
min=h->s;
h=h->next;
}
return min;
}

解析: 在本题中,h为—个指向结构体的指针变量,若要引用它所指向的结构体中的某一成员时,要用指向运算符“->”。由于是链表,所以要使h逐一往后移动,使用的是h=h->next。

选择题
多项选择题