赞
踩
设计程序,N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,72,64,87, 则平均分应当是:78.625
#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 *p; double sum=0,avg; int n=0; p=h->next; while(p) { sum=sum+p->s; n++; p=p->next; avg=sum/n; } return avg; } STREC * creat( double *s) //创建带头结点的单链表 { STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC)); p->s=0; while(i<N) { q=(STREC*)malloc(sizeof(STREC)); q->s=s[i]; i++; p->next=q; p=q; } p->next=0; return h; } void outlist( STREC *h) //输出链表 { STREC *p; p=h->next; printf("head"); do { printf("->%4.1f",p->s); p=p->next; } while(p!=0); printf("\n\n"); } void main() { double s[N]={85,76,69,85,91,72,64,87},ave; STREC *h; h=creat( s ); outlist(h); ave=fun( h ); printf("ave= %6.3f\n",ave); }
运行示例
C语言不迷路。
需要分析可以到微信公众号发送问题或者在评论区留言,有问必答!
想了解我的C语言学习笔记等更多知识请关注公众号:
量子云基地
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。