实验一无限位长整数运算Word格式.docx

上传人:b****5 文档编号:15809289 上传时间:2022-11-16 格式:DOCX 页数:14 大小:76.50KB
下载 相关 举报
实验一无限位长整数运算Word格式.docx_第1页
第1页 / 共14页
实验一无限位长整数运算Word格式.docx_第2页
第2页 / 共14页
实验一无限位长整数运算Word格式.docx_第3页
第3页 / 共14页
实验一无限位长整数运算Word格式.docx_第4页
第4页 / 共14页
实验一无限位长整数运算Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验一无限位长整数运算Word格式.docx

《实验一无限位长整数运算Word格式.docx》由会员分享,可在线阅读,更多相关《实验一无限位长整数运算Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

实验一无限位长整数运算Word格式.docx

head)//初始化链表的函数

{

if((head=newDLNode)==NULL)

exit

(1);

head->

prior=NULL;

next=NULL;

}

voidInsertNode(DLNode*&

head,DataTypea)//插入元素的到指定的位置加法中需要在头部插入

DLNode*newNode;

InitNode(newNode);

newNode->

data=a;

next=head;

head=newNode;

voidPrintNode(DLNode*head,chara)//打印输出链表

DLNode*p=head;

while(p->

data=='

0'

{

p=p->

next;

if(p==NULL)

{

cout<

<

'

endl;

return;

}

}

if(a=='

-'

cout<

;

while(p!

=NULL)

p->

data;

cout<

voidDestoryNode(DLNode*&

head)//销毁链表

DLNode*p,*p1;

p=head;

p1=p;

deletep1;

deletep;

head=NULL;

intCalLongNode(DLNode*head)//计算链表的长度

DLNode*p;

intn=0;

n++;

returnn;

charCheckNode(DLNode*head)//检查链表的运算符

if(p->

+'

||p->

data!

='

&

p->

returnp->

intAtoiChar(chara)//将字符转化为数字便于计算

return(a-'

);

voidToLastNode(DLNode*&

head)//寻到最后一个节点

while(head->

next!

head=head->

voidAddNode(DLNode*h1,DLNode*h2)//计算加法传递参数勿用head传递

intl1,l2,a;

//用来记录链表的长度

intcarry=0;

//存贮进位

charcal;

//存贮最终结果的符号

intm,n;

boolf1=0,f2=0;

DLNode*h3,*h4;

InitNode(p);

InitNode(h3);

InitNode(h4);

h3=h1;

h4=h2;

l1=CalLongNode(h1);

l2=CalLongNode(h2);

if(h3->

f1=1;

l1=l1-1;

h3=h3->

h1=h1->

if(h4->

f2=1;

l2=l2-1;

h2=h2->

h4=h4->

if(f1==0)

cal='

elsecal='

if(l1<

l2)

p=h1;

h1=h2;

h2=p;

h3=h1;

h4=h2;

a=l1;

l1=l2;

l2=a;

ToLastNode(h3);

ToLastNode(h4);

for(inti=0;

i<

l2;

i++)

m=h3->

data-'

n=h4->

m=m+n+carry;

carry=0;

if(m>

9)

carry=1;

m=m-10;

h3->

data=m+'

m=0;

n=0;

prior;

l1-l2;

//cout<

m<

#'

m=m+carry;

*'

m;

}

if(carry==1)

charm;

m='

1'

InsertNode(h1,m);

PrintNode(h1,cal);

voidCalNode(DLNode*h1,DLNode*h2,charoper)//计算减法

intl1,l2,a;

intborrow=0;

//存贮借位的值

//存贮最终结果的正负

intm=0,n=0;

boolf1=0,f2=0;

if(h1->

if(h2->

l2=l2-1;

if(l1>

if(f1==0)

cal='

else

if((oper=='

&

f2==0)||(oper=='

f2==1))

if(l1==l2)

DLNode*h5,*h6;

InitNode(h5);

InitNode(h6);

h5=h1;

h6=h2;

booljudge=0;

for(inti=0;

l1;

if(h5->

data>

h6->

data)

{

cal='

judge=1;

break;

}

data<

p=h1;

h2=h1;

h1=p;

else

h5=h5->

h6=h6->

if(judge==0)

"

0"

exit(0);

m=m-n-borrow;

borrow=0;

if(m<

0)

borrow=1;

m=m+10;

m=m-borrow;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1