大一下册数据结构链表问题,很简单,就是单纯的显示问题
#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