程序主函数已经出来了 求高手帮我补充子函数
输入10个学生5门课的成绩,用函数求:(1)每个学生平均分;(2)每门课的平均分;(3)找出每门课最高分所对应的学生;(4)求平均分方差:σ=(∑xi2)/n-((∑xi)/n)2,xi为某一学生的平均分。要求:用链表存放10个学生5门课成绩。#include"stdio.h"
#include"math.h"
#include"string.h"
#include"stdlib.h"
#define N 10
typedef struct node
{int num;
char name[20];
int score[5];
float avg;
struct node *next;
}NODE;/*链表结点类型定义*/
/********函数声明********/
NODE *create_linklist();
/*输入10个学生信息,建立一个单链表,返回其头指针*/
void output(NODE *h);/*输出头指针h所指单链表中存放的学生信息*/
void avg_stu(NODE *h);/*求每个学生的平均分*/
void avg_course(NODE *h);/*求每门课的平均分*/
void max(NODE *h);/*找出每门课最高分所对应的学生*/
float jfc(NODE *h);/*求均方差并返回其值*/
/********主函数********/
void main()
{NODE *head;float x;int n;
printf("********简单的学生成绩管理程序1********\n"); /*输出菜单*/
printf(" 1. 输入学生信息建立单链表\n");
printf(" 2. 输出学生信息\n");
printf(" 3. 求每个学生的平均分\n");
printf(" 4. 求每门课的平均分\n");
printf(" 5. 找出每门课最高分所对应的学生\n");
printf(" 6. 求均方差\n");
printf(" 0. 退出\n");
while(1)
{printf("请选择:");
scanf("%d",&n);
switch(n)
{case 1:head=create_linklist();break;
case 2:output(head);break;
case 3:avg_stu(head);break;
case 4:avg_course(head);break;
case 5:max(head);break;
case 6:x=jfc(head);printf("jfc=%f\n",x);break;
case 0:exit(0);
default:printf("输入错误,请重新选择!\n");
}
}
}
/********子函数********/
NODE *create_linklist()
/*输入N个学生信息,建立一个单链表,返回其头指针*/
{NODE *h,*p,*s;int i,j;
h=p=NULL;
for(i=0;i<N;i++)
{s=(NODE *)malloc(sizeof(NODE));
scanf("%d%s",&s->num,s->name);
for(j=0;j<5;j++)
scanf("%d",&s->score[j]);
s->avg=0;
if(h==NULL)h=s;
else p->next=s;
p=s;
}
p->next=NULL;
return h;
}
void output(NODE *h)/*输出头指针h所指单链表中存放的学生信息*/
{
}
void avg_stu(NODE *h)/*求每个学生的平均分*/
{
}
void avg_course(NODE *h)/*求每门课的平均分*/
{
}
void max(NODE *h)/*找出每门课最高分所对应的学生*/
{
}
float jfc(NODE *h)/*求均方差并返回其值*/
{
}