fddrdrcfdrf 2016-05-18 10:27 采纳率: 100%
浏览 1255
已采纳

问个c语言链表的问题???

不知道我这个链表哪里建立错了,每次编译都通不过。
我觉得原理应该搞懂了,求大神指点一下啊 啊啊啊啊

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
typedef struct link
{
    int a;
    struct link *next;
}ST;
ST *begain;
ST *p;
void creat()
{
    ST *h;
    srand((unsigned)time(NULL));
    h->a=rand()%100+1;
    h->next=begain->next;
    begain->next=h;
}
void Lprint()
{
    int k=0;
    p=begain->next;
    do
    {   
        printf("%6d",p->a);
        k++;
        p=p->next;
    }while(p==NULL);
}
void main()
{
    begain->next=NULL;
    creat();
    Lprint();
}
  • 写回答

4条回答

  • 小灸舞 2016-05-18 11:55
    关注

    有两个问题:
    1.需要为每个节点都malloc一个空间
    2.do()while这里的判断条件应该是p!=NULL

     #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    typedef struct link
    {
        int a;
        struct link *next;
    }ST;
    ST *begain;
    ST *p;
    void creat()
    {
        ST *h = (ST *)malloc(sizeof(ST));
        srand((unsigned)time(NULL));
        h->a=rand()%100+1;
        h->next=begain->next;
        begain->next=h;
    }
    void Lprint()
    {
        int k=0;
        p=begain->next;
        do
        {   
            printf("%6d",p->a);
            k++;
            p=p->next;
        }while(p!=NULL);
    }
    void main()
    {
        begain = (ST *)malloc(sizeof(ST));
        begain->next=NULL;
        creat();
        Lprint();
    }
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码