夜鸢. 2022-03-19 14:01 采纳率: 100%
浏览 23
已结题

这个代码为什么运行结果显示不了

麻烦帮我看看我这个代码为什么运行结果显示不了。题目是已知两个单链表,元素递增排序,求交集。
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
typedef struct node LNode, *LinkList;
void BUILDLIST(LinkList l)
{
char c;
int a=0,b;
scanf("%d",&b);
LinkList p=l,q=(LinkList)malloc(sizeof(LNode));
LinkList h=(LinkList)malloc(sizeof(LNode));
h->data=b;
p->next=h;
p=h;
while((c=getchar())!='\n')
{scanf("%d",&a);
q->data=a;
q->next=NULL;
p->next=q;
p=q;
}
p->next=NULL;
}
LinkList qbjlist(LinkList l1, LinkList l2)
{
if(l1->next==NULL||l2->next==NULL) return;
int x;
LinkList p1=l1->next;
LinkList p2=l2->next;
while(p1&&p2)
{if(p1->data>p2->data) p2=p2->next;
else if(p1->datadata) p1=p1->next;
else
{printf("%d",p1->data);
p1=p1->next;
p2=p2->next;
}
}
}
int main()
{
LinkList l1=(LinkList)malloc(sizeof(LNode));
LinkList l2=(LinkList)malloc(sizeof(LNode));
l1->next=NULL;
l2->next=NULL;
BUILDLIST(l1);
BUILDLIST(l2);
qbjlist(l1,l2);
printf("\n");
return 0;
}

  • 写回答

2条回答 默认 最新

  • 关注

    你这里写错了吧

    img


    给你改好了:

    img

    #include<stdio.h>
    #include<stdlib.h>
    struct node
    {
        int data;
        struct node *next;
    };
    typedef struct node LNode, *LinkList;
    void BUILDLIST(LinkList &l)
    {
        l = new node;
        l->next = NULL;
        node *r;
        r = l;
        int n;
        scanf("%d",&n);
        for (int i = 0; i < n; i++)
        {
            printf("请输入链表第%d个元素的值:", i + 1);
            node *s;
            s = new LNode;
            scanf("%d", &s->data);
            s->next = NULL;
            r->next = s;
            r = s;
        }
    
    }
    LinkList qbjlist(LinkList l1, LinkList l2)
    {
        if(l1->next==NULL||l2->next==NULL)
            return 0;
        int x;
        LinkList p1=l1->next;
        LinkList p2=l2->next;
        while(p1&&p2)
        {
            if(p1->data>p2->data)
                p2=p2->next;
            else if(p1->data>p2->data)
                p1=p1->next;
            else
            {
                printf("%d",p1->data);
                p1=p1->next;
                p2=p2->next;
            }
        }
    }
    int main()
    {
        LinkList l1=(LinkList)malloc(sizeof(LNode));
        LinkList l2=(LinkList)malloc(sizeof(LNode));
        l1->next=NULL;
        l2->next=NULL;
        BUILDLIST(l1);
        BUILDLIST(l2);
        qbjlist(l1,l2);
        printf("\n");
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月19日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度