问答题
M名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的带头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define M 8
struct slist
{double s;
struct slist *next;
};
typedef struct slist STREC;
double proc(STREC *h)
{
}
STREC*creat(double*s)
{
STREC *h, *p, *q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->s=0;
while(i<M)
//产生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.0f", p->s); p=p-next; }
//输出各分数
while(p->next!=NULL);
printf("\n\n");
}
void main()
{
double stu[M]={56, 89, 76, 95, 91, 68, 75, 85}, max;
STREC*h;
h=creat(stu);
outlist(h);
max=proc(h);
printf("max=%6.1f\n", max);
}
【参考答案】
double proc(STREC*h)
{
double max=h->s; //定义max放其最......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)