大整数的四则运算高质量C语言程序文件Word文档格式.docx

上传人:b****2 文档编号:14842515 上传时间:2022-10-25 格式:DOCX 页数:28 大小:1.35MB
下载 相关 举报
大整数的四则运算高质量C语言程序文件Word文档格式.docx_第1页
第1页 / 共28页
大整数的四则运算高质量C语言程序文件Word文档格式.docx_第2页
第2页 / 共28页
大整数的四则运算高质量C语言程序文件Word文档格式.docx_第3页
第3页 / 共28页
大整数的四则运算高质量C语言程序文件Word文档格式.docx_第4页
第4页 / 共28页
大整数的四则运算高质量C语言程序文件Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

大整数的四则运算高质量C语言程序文件Word文档格式.docx

《大整数的四则运算高质量C语言程序文件Word文档格式.docx》由会员分享,可在线阅读,更多相关《大整数的四则运算高质量C语言程序文件Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

大整数的四则运算高质量C语言程序文件Word文档格式.docx

3)乘法运算

符号存放在最低位,将其中一个数a的每一位分别乘以另一个数b的每一位,并将结果保存在数组c中,然后重复计算a的下一位跟b的每一位的乘积,把上一次计算保存在c的值加上本次计算后的值,并保存在c自身中,直到a的最高位,最后输出符号和相应的计算结果。

4)除法运算

利用乘法和减法,将除数分别乘以1到9,直到其值大于等于被除数的对应的数,然后被除数对应的数减去其乘积,保存在一个数组中,下一次循环把它归到被除数中继续做除法运算,最后得到余数并输出。

4.函数功能:

1.voidinit(inta[],intb[],int*p1,int*p2)

2.功能说明:

读入所要计算的数值,数据初始化

3.intplus(inta[],intb[],intc[],intm,intn)

4.功能说明:

两个正整数相加

3.voidchange(inta[],intb[],intm,intn)

功能说明:

当两异号数相加时,改变其符号以符合加法运算

5.intminus(inta[],intb[],intd[],intm,intn)

6.功能说明:

两个正整数相减

5.voidminusfun(inta[],intb[],intd[],intm,intn)

判断两个异号数的相加方式

7.intmulti(inta[],intb[],intc[],intm,intn)

8.功能说明:

两个正整数相乘

7.voidprint(longc[],intflag)

功能说明:

打印带符号flag(1为负)的longc[]数组

8.intwrite(longa[],intflag)

将键盘敲入的数字按4位一组放入longa[],且将符号放入flag

9.voidmul(longa[],intfirst,intlast,longb[],longc[])

乘法,a的第last到first位乘以b,答案放到c

10.intcompara(longa[],intfirst,intlast,longb[])

比较数组a,b大小,firstlast分别为a的最高最低位

11.intminusd(longa[],intfirst,intlast,longb[],longc[],intflag)

a为被减数,firstlast为a最高最低位,b为减数,c为差,flag为符号

12.voiddiv(longa[],longb[],longc[],intfa)

除法,a除以b的值放入c,fa为a符号

13.voidmenu()

打印菜单函数

14.voidmain()

主函数,调用其余函数,计算相应功能的值并输出。

5.源程序:

#include<

iostream.h>

math.h>

stdio.h>

#defineMAX40//可以修改,此时最大运算位数为四十位

#defineN10//此处应为最大位数除以4

voidinit(inta[],intb[],int*p1,int*p2)//输入

{

inti,j;

charr,s;

for(i=0;

i<

MAX;

i++)

{

a[i]=0;

b[i]=0;

}

printf("

请输入处理的第一个数的值:

"

);

r=getchar();

if(r==45)

a[0]=r;

for(i=1;

(r=getchar())!

='

\n'

;

a[i]=r-48;

else

a[1]=r-48;

for(i=2;

*p1=i;

请输入处理的第二个数的值:

s=getchar();

if(s==45)

b[0]=s;

for(j=1;

(s=getchar())!

j++)

b[j]=s-48;

b[1]=s-48;

for(j=2;

*p2=j;

}

intplus(inta[],intb[],intc[],intm,intn)//加法运算

intd[MAX]={0},i,j,k;

i++)c[i]=0;

if(a[1]==0)

for(i=0;

n;

i++)c[i]=b[i];

return(i);

if(b[1]==0)

m;

i++)c[i]=a[i];

for(i=m-1,j=n-1,k=1;

i>

0&

&

j>

0;

i--,j--,k++)

d[k]=a[i]+b[j]+d[k];

if(d[k]>

9)

d[k+1]++;

d[k]=d[k]-10;

while(i>

0)

d[k]=d[k]+a[i];

9)

k++;

i--;

}

while(j>

d[k]=d[k]+b[j];

if(d[k]>

{

d[k+1]++;

}

k++;

j--;

d[0]=a[0]+b[0];

c[0]=d[0];

if(d[k]==0)

k--;

for(i=1;

k>

i++,k--)

c[i]=d[k];

return(i);

voidchange(inta[],intb[],intm,intn)//变号运算

intc[MAX];

if(m<

=n&

b[0]==45)

c[i]=a[i];

for(i=1,j=1;

j<

i++,j++)

a[i]=b[j];

b[i]=c[j];

for(j=i;

b[j]=0;

return;

if(m>

a[0]==45)

a[0]=0;

b[0]=45;

intminus(inta[],intb[],intd[],intm,intn)//减法运算

intc[MAX]={0},i,j,k;

d[i]=0;

i--,j--,k++)

if(c[k]<

0||a[i]<

b[j])

c[k]=c[k]+a[i]-b[j];

if(c[k]<

0)

{

c[k]+=10;

c[k+1]--;

}

elsec[k]=a[i]-b[j];

c[k]=c[k]+a[i];

if(c[k]<

c[k]+=10;

c[k+1]--;

i--;

c[k]=a[i]+c[k];

while(c[k]<

=0&

i++)

d[i]=c[k--];

voidminusfun(inta[],intb[],intd[],intm,intn)//判断是否两异号数相加

inti,j,f=0,g=0;

if(b[0]!

=0)printf("

-"

printf("

%d"

b[i]);

printf("

\n"

if(a[0]!

=0)

a[i]);

if(m==n)

if((a[i]<

b[i]&

b[0]==45)||(a[i]>

a[0]==45))

g=1;

if(a[i]!

=b[i])f=1;

if(f==0)

0\n"

if(g==1)

change(a,b,m,n);

j=minus(a,b,d,n,m);

j;

i++)printf("

d[i]);

return;

elseif(a[0]==45&

b[0]==0)

j=minus(b,a,d,n,m);

else

j=minus(a,b,d,m,n);

n&

b[0]==45)

retur

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

当前位置:首页 > 职业教育 > 中职中专

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

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