• 2022-06-09
    下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
    /**********code.c**********/
    #include<stdio.h>
    #include<stdlib.h>
    typedefstructaa
    {
    intdata;
    structaa*next;
    }NODE;
    fun(NODE*h)
    {
    intmax=-1;
    NODE*p;
    /**********found**********/
    p=h;
    while(p)
    {
    if(p->data>max)
    max=p->data;
    /**********found**********/
    p=h->next;
    }
    returnmax;
    }
    outresult(ints,FILE*pf)
    {
    fprintf(pf,"\nThemaxinlink:%d\n",s);
    }
    NODE*creatlink(intn,intm)
    {
    NODE*h,*p,*s,*q;
    inti,x;
    h=p=(NODE*)malloc(sizeof(NODE));
    h->data=9999;
    for(i=1;i<=n;i++)
    {
    s=(NODE*)malloc(sizeof(NODE));
    s->data=rand()%m;
    s->next=p->next;
    p->next=s;
    p=p->next;
    }
    p->next=NULL;
    returnh;
    }

    outlink(NODE*h,FILE*pf)
    {
    NODE*p;
    p=h->next;
    fprintf(pf,"\nTHELIST:\n\nHEAD");
    while(p)
    {
    fprintf(pf,"->%d",p->data);
    p=p->next;
    }
    fprintf(pf,"\n");
    }
    main()
    {
    NODE*head;intm;
    head=creatlink(12,100);
    outlink(head,stdout);
    m=fun(head);
    printf("\nTHERESULT:\n");
    outresult(m,stdout);
    }
    /**********-code.c**********/
  • 举一反三