大家帮我改一下这段代码谢谢拉

作者在 2013-11-21 09:21:51 发布以下内容

//1、试编写一个求已知单链表的数据域的平均值的函数(数据域数据类型为整
 //型)。
 #include "stdio.h"
 #include "malloc.h"
 typedef struct node
 {
 int data;
    struct node *link;
 }NODE;

int aver(NODE *head)
 {
 int i=0,sum=0,ave; NODE *p;
    p=head;
    while(p!=NULL)
 { p=p->link;++i;
      sum=sum+p->data;
 }
      ave=sum/i;
 return (ave);
}

默认分类 | 阅读 948 次
文章评论,共2条
a2316984138(作者)
2013-11-21 09:23
1
在vc6.0平台上运行不了,希望尽快得到答案,
hkcmd
2013-11-22 15:30
2
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
 
typedef struct node
{
    int date;
    struct node * next;
} *PNODE;
 
PNODE ListInit();
void ListInsert(PNODE,int &,int &);
void ListTraverse(PNODE);
int aver(PNODE);

int main(void)
{
    int a[]={
         2,6,3,4,8,9,45 
    };
    PNODE Address=ListInit();
    for(int i=1;i<=7;i++)
    {
        ListInsert(Address,i,a[i-1]);
    }
    printf("L=");
    ListTraverse(Address);
    int ave=aver(Address); 
    printf("\n平均值是:%d\n",ave);
    return 0;
}
 
PNODE ListInit()
{
    PNODE f=(PNODE)malloc(sizeof(node));
    f->next=NULL;
    return f;
}
 
void ListInsert(PNODE L,int &pos,int &val)
{
    int j=0;
    PNODE u=L;
    while(NULL!=u&&j<pos-1)
    {
        u=u->next;
        j++;
    }
    if(NULL==u && j>pos)
       exit(-1);
    PNODE newnode=(PNODE)malloc(sizeof(node));
    newnode->date=val;
    newnode->next=u->next;
    u->next=newnode;
}
 
void ListTraverse(PNODE L)
{
    PNODE v=L->next;
    while(NULL!=v)
    {
        printf("%d ",v->date);
        v=v->next;
    }
}
int aver(PNODE head)
 {
    int i=0,sum=0,ave; 
    PNODE p=head->next;
    if(NULL==p)
    {
        printf("动态内存分配失败!");
        exit(-1); 
    }
    while(p!=NULL)
    { 
       sum=sum + (p->date);
       p=p->next;
       ++i;
    }
    ave=sum/i;
    return ave;
}
游客请输入验证码
文章分类
文章归档