Am I dead? No, so I can't live like a dead one!
我死了吗?没有,所以我不能活得像死了一样!
任务:
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 *t; double a=0;
t=h->next;
while(t)
{
a+=t->s;
t=t->next;
}
return a/N;
}
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;
}
double 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");
}
int 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);
return 0;
}
运行结果: