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

#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里面不能有空格。

下面那个循环的最后,也加上一个
scanf("%c",&c);