大一下册数据结构链表问题,很简单,就是单纯的显示问题

#include<stdio.h>

#include<stdlib.h>

typedef struct ListNode

{

int data;

struct ListNode *Next;

}*ListNode;

struct ListNode* addTwoNumbers(struct ListNode* l1,struct ListNode* l2)

{

struct ListNode* l3;//头节点

struct ListNode* p3;//身体节点

struct ListNode* P;//指针结点

l3=(struct ListNode*)malloc(sizeof(struct ListNode));

l1=l1->Next;

l2=l2->Next;

P=l3;

int k=0; //标识符是否进位

while(l1!=NULL)

{

l1=l1->Next;

l2=l2->Next;

p3=(struct ListNode*)malloc(sizeof(struct ListNode));

if(((l1->data + l2->data) >=10) && k==1) //四种相加的可能性

{

p3->data=(l1->data)+(l2->data)-9;

k=1;

}

else if(((l1->data + l2->data) >=10) && k==0)

{

p3->data=(l1->data)+(l2->data)-10;

k=1;

}

else if(((l1->data + l2->data) < 10) && k==1)

{

p3->data=(l1->data)+(l2->data)+1;

k=0;

}

else if(((l1->data + l2->data) < 10) && k==0)

{

p3->data=(l1->data)+(l2->data);

k=0;

}

p3=P->Next;

}

return l3;

};

int main()

{

char a,c;

int b;

ListNode l1,l2,l3; //头节点

ListNode p1,p2;//身体节点

struct ListNode* P;//指针

l1=(struct ListNode*)malloc(sizeof(struct ListNode));

l2=(struct ListNode*)malloc(sizeof(struct ListNode));

P=l1;

while(c!=')')

{

scanf("%c %d %c ",&a,&b,&c);

p1=(struct ListNode*)malloc(sizeof(struct ListNode));

p1->data=b;

P->Next=p1;

printf("%d",p1->data);

}

scanf("%c",&c);

printf("%c",c);//同时重置c

P=l2;

while(c!=')')

{

scanf("%c %d %c ",&a,&b,&c);

p2=(struct ListNode*)malloc(sizeof(struct ListNode));

p2->data=b;

P->Next=p2;

printf("%d",p2->data);

}

l3=addTwoNumbers(l1,l2);

l3=l3->Next;

while(l3!=NULL)

{

printf("%d",l3->data);

l3=l3->Next;

}

}

图片说明

我想问问大家,为什么我上下代码一样的,但是第二个录入,最后一个就没有显示,大家不用关心我之后的代码相加,就只需要解决我录入问题就好了

回答

将scanf后面改成

scanf("%c%d%c,"&a,&b,&c);

scanf里面不能有空格。

以上是 大一下册数据结构链表问题,很简单,就是单纯的显示问题 的全部内容, 来源链接: utcz.com/a/33561.html

回到顶部