Better_man_007 2021-09-26 18:31 采纳率: 100%
浏览 48
已结题

C语言合并两个链表,为啥不能输出,救命。

#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct Student)


struct Student //创建结构体 
{
    int num;  //存放数据  
    struct Student *next;  //指针 
};


struct Student *creat() //构造创建链表函数 
{
    struct Student *head,*p1,*p2;
    head = (struct Student *)malloc(LEN); //建立头结点 
    p1 = p2 = (struct Student *)malloc(LEN);//首元结点 
    scanf("%d",&p1->num);
    head->next = p1; //将头结点与首元结点链接 
    while(p1->num != 0) //当数据不为0是执行循环,否则停止创建链表 
    {
            p1 = (struct Student*)malloc(LEN);
            p2->next = p1;
            p2 = p1;
            scanf("%d",&p1->next);
    }
    p2->next = NULL;
    return head;
}


struct Student *sort(void)  //两个链表合并 
{
    struct Student *head1,*head2,*head,*p,*p1,*h1;
    p = head;
    head1 = creat(); //调用创建链表函数 
    head2 = creat();
    p1 = head1->next; //p1指向创建链表的首元结点 
    h1 = head2->next;
    head = head1; //用一个指针指向两个创建链表的中任意一个头结点 
    while(p1->next != NULL && h1->next != NULL) 
    {
        if(p1->num > h1->num)
        {
            p->next = p1;
            p = p1;
            p1 = p1->next;
        }
        else
        {
            p->next = h1;
            p = h1;
            h1 = h1->next;
        }
    } 
    p->next = (p1 != NULL)?p1:h1;
    return(head);  
}



void print(struct Student *head) //构造输出函数 
{
    struct Student *h;
    h = head->next; //h指向首元节点 
    if(h == NULL){
        printf("null");    
        return;
    }
    while(h != NULL)
    {
        printf("%d ",h->num);
        h = h->next;
    }
}


int main()
{
    struct Student *head;
    head = sort();
     print(head);
    return 0;         
}


  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-09-26 18:37
    关注

    scanf("%d",&p1->next);
    改成
    scanf("%d",&p1->num);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月26日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上