题目内容:
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; //返回链表的首地址
}
void outlist(STREC*h)
{
STREC*p:
p=h;
printf("head"):
do{
printf("->%2.Of",p->s);
p=p->next;
}
//输出各分数
while(p->next!=NULL);
printf("\n\n");
}
void main()
{
double s [N]=(85,100,99,85,91,72,64,87
},max;
STREC*h;
h=creat(s);
outlist(h):
max=fun(h):
printf("max=%6.1f\n",max);
}
参考答案:
答案解析: