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条)

报告相同问题?

悬赏问题

  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。