可不可以帮我检查一下哪里写错或者想复杂了,有没有更优化的写法。我的很久都运行不出来……
double avgListX(LinkList L, ElemType x) //统计单链表中比x大的元素平均值,并返回
{
int i,num=0,sum=0;
LinkList p;
p=L->next;
if(p==NULL)
{
return 0;
}
else
{
while(p!=NULL)
{
if(p->data> 60)
{
num++;
sum+=p->data;
}
}
if(num > 0)
printf("%.1f\n",sum*1.0/num);
else
printf("0");
}
return sum;
}
你好,你的链表没有向下移动啊,所以一直在循环,我不知道我c写的对不对,但是应该是这样的逻辑
while(p!=NULL)
{
if(p->data> 60)
{
num++;
sum+=p->data;
}
p -> p->next;
}