数据结构实验关于长整数求长的问题,不知自己错在哪

#include<iostream>usingnamespacestd;#include<stdlib.h>#include<conio.h>#include<stdio... # include <iostream>
using namespace std;
# include <stdlib.h>
# include <conio.h>
# include <stdio.h>
# include <malloc.h>
#include <stdio.h>
#include <math.h>
# define ElemType int
typedef struct LNode
{
ElemType data,carryin;
struct LNode *next,*prior;

} *Link;
typedef struct
{
Link head;
Link tail;
}list;

void Initlist(list &L)
{
struct LNode *p;
if((p=( LNode *)malloc(sizeof(LNode)))==NULL) exit(0);
L.head=L.tail=p;

}

void Creatlist(list &L)
{char a;Link t;
Initlist(L); struct LNode *k;
if((k=( LNode *)malloc(sizeof(LNode)))==NULL) exit(0);
cin>>k->data;cin>>a;
if(k->data>0)
{L.head=L.tail=k;L.tail->next=NULL;

while(1)
{struct LNode *q;
if((q=( LNode *)malloc(sizeof(LNode)))=NULL) exit(0);
cin>>q->data;
a=getchar();
if(a==';'||q->data>9999||q->data<0) exit(0);
q->prior=L.tail;
L.tail->next=q;
L.tail=q;L.tail->next=NULL;q->next=NULL;q=q->next;
};}

else {
k->data=-1;L.head=L.tail=k;L.tail->next=NULL;
if((t=( LNode *)malloc(sizeof(LNode)))=NULL) exit(0);
if( (a=getchar())==',') cin>>t->data;
L.tail->next=t;t->prior=L.head;L.tail=t;L.tail->next=NULL;
do{
if((t=( LNode *)malloc(sizeof(LNode)))=NULL) exit(0);
cin>>t->data;
t->prior=L.tail;
L.tail->next=t;
L.tail=t;L.tail->next=NULL;
}while(t->data=',');
}
}
void displaylist(list l)
{
Link p;
p=l.head;if(p->data!=-1)
cout<<p->data;
else cout<<(-1)*p->data;
p=p->next;
while(p->data||p->next!=NULL)//
{cout<<','<<(p->data);p=p->next;}
}
void main()
{
cout<<"please enter the number ended with ';' "<<endl;
list L;
Creatlist(L);
displaylist(L);
}
展开
 我来答
lorddenton
2010-11-23 · TA获得超过879个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:463万
展开全部
帮你修改了一下代码,你的代码太多冗余,容易出错,而且还有= == 不分的情况:
# include <iostream>
using namespace std;
# include <stdlib.h>
# include <conio.h>
# include <stdio.h>
# include <malloc.h>
#include <stdio.h>
#include <math.h>
# define ElemType int
typedef struct LNode
{
ElemType data,carryin;
struct LNode *next,*prior;

} *Link;
typedef struct
{
Link head;
Link tail;
}list;

void Initlist(list &L)
{

L.head=L.tail=NULL;

}
void InsertListFromTail(list &L, int data)
{
struct LNode *p;

if((p=( LNode *)malloc(sizeof(LNode)))==NULL)
exit(0);
memset(p, 0, sizeof(LNode));
p->data = data;

if (L.tail == NULL)
{
L.head = p;
L.tail = p;
}
else
{
L.tail->next = p;
p->prior = L.tail;
L.tail = p;
}

}

void Creatlist(list &L)
{
char a;

Initlist(L);
cin>>a;
if (a == '-')
{
InsertListFromTail(L, -1);
}
else
{
InsertListFromTail(L, a - '0');
}

while(1)
{
a = getchar();
if(a==';')
{
return;
}
InsertListFromTail(L, a - '0');
}

}
void displaylist(list l)
{
Link p;
p=l.head;
if(p->data!=-1)
{
cout<<p->data;
}
else
{
p=p->next;
cout<<(-1)*p->data;
}
p=p->next;
while(p != NULL)//
{cout<<','<<(p->data);p=p->next;}
}
void main()
{
cout<<"please enter the number ended with ';' "<<endl;
list L;
Creatlist(L);
displaylist(L);
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式