问答题

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=0; return h; /*返回链表的首地址* / } outlist (STREC *h) { STREC *p; p=h->next; printf("head"); do {printf("->%2.0f ",p->s);p=p->next;} /*输出各分数* / while (p!=0); printf("\n\n "); } main() { double s[N]={85,76,69,85,91,72,64,87}, max; STREC *h; h=creat(s); outlist(h); max=fun (h); printf("max=%6.1f\n ",max); }

【参考答案】

double fun(STREC *h) { double max=h->s; while(h!=NULL) ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题