大整数加减乘法C语言版本

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include

void plus(char s1[],char s2[])
{

int a[63]={0},b[63]={0},c[64]={0};
int i,j,k,m,n,cr,count;
i=j=cr=0;

m=strlen(s1);
n=strlen(s2);

/* 测打印试数组s2
for(i=0;i{
printf("%c+s2s2\n",s2[i]);
}
*/
k=(m>n)?m:n;
for(i=0,j=m-1;i{
a[i]=s1[j]-'0';
}
/* 测打印试数组a
for(i=0;i<=m-1;i++)
{
printf("%d+aaa\n",a[i]);
}
*/
for(i=0,j=n-1;i{
b[i]=s2[j]-'0';
}
/* 测试打印数组b
for(i=0;i<=3 ;i++)
{
printf("%d+bbb\n",b[i]);
}
*/
for(i=0;i<=k;i++)
{
c[i]=((a[i]+b[i]+cr)%10);
if((a[i]+b[i])>=10)cr=1;
else cr=0;
}
printf("相加的结果为:\n");
for(i=k;i>=0;i--)
{
if(c[i]!=0)printf("%d",c[i]);
}
printf("\n");

}

void minus(char s1[],char s2[])
{
int a[63]={0},b[63]={0},c[64]={0};
int i,j,k,m,n,cr,count;
i=j=cr=0;

m=strlen(s1);
n=strlen(s2);
k=(m>n)?m:n;
for(i=0,j=m-1;i{
a[i]=s1[j]-'0';
}
for(i=0,j=n-1;i{
b[i]=s2[j]-'0';
}

for(i=0;i<=k;i++)
{
if(a[i]{
c[i]=a[i]+10-b[i]+cr;
cr=-1;
}else
{

c[i]=a[i]-b[i]+cr;
cr=0;
}
}
printf("相减的结果为:\n");
for(i=k-1;i>=0;i--)
{
if(c[i]!=0) printf("%d",c[i]);
}
printf("\n");


}
void division(char s1[],char s2[])
{
int a[63]={0},b[63]={0},c[64]={0};
int i,j,k,m,n,cr,count;
i=j=cr=0;

m=strlen(s1);
n=strlen(s2);
k=(m>n)?m:n;
for(i=0,j=m-1;i{
a[i]=s1[j]-'0';
}
for(i=0,j=n-1;i{
b[i]=s2[j]-'0';
}

for(i=0;i<=k;i++)
{
if(a[i]{
c[i]=a[i]+10-b[i]+cr;
cr=-1;
}else
{

c[i]=a[i]-b[i]+cr;
cr=0;
}
}
printf("相减的结果为:\n");
for(i=k-1;i>=0;i--)
{
if(c[i]!=0) printf("%d",c[i]);
}
printf("\n");


}
void multiply(char s1[],char s2[])
{
int a[32]={0},b[32]={0},c[64]={0};
int i,j,k,m,n,cr,sum;
i=j=cr=0;

m=strlen(s1);
n=strlen(s2);
k=m+n;
for(i=0,j=m-1;i{
a[i]=s1[j]-'0';
}
for(i=0,j=n-1;i{
b[i]=s2[j]-'0';
}
if(mcr=0;
for(i=0;i{
for(j=0;j{
sum=(a[i]*b[j])+cr+c[i+j];
cr=sum/10;
c[i+j]=(sum%10);
}

}
printf("相乘的结果为:\n");
for(i=m+n;i>=0;i--)
{
if(c[i]!=0)
printf("%d",c[i]);
}
printf("\n");
}else
{
cr=0;
for(j=0;j{
for(i=0;i{
sum=(a[i]*b[j])+cr+c[i+j];
cr=sum/10;
c[i+j]=(sum%10);
}

}
printf("相乘的结果为:\n");
for(i=m+n;i>=0;i--)
{if(c[i]!=0)
printf("%d",c[i]);
}
printf("\n");
}


}



main()
{
/*/加法
char s1[63]={'0'} , s2[63]={'0'};
printf("请输入加法第一个数,按回车键结束:\n");
gets(s1);
printf("请输入加法第二个数,按回车键结束:\n");
gets(s2);
plus(s1,s2);

//减法
char s3[63]={'0'} , s4[63]={'0'};
printf("请

输入减法第一个数,按回车键结束:\n");
gets(s3);
printf("请输入减法第二个数,按回车键结束:\n");
gets(s4);
minus(s3,s4);

//乘法
char s5[32]={'0'} , s6[32]={'0'};
printf("请输入减法第一个数,按回车键结束:\n");
gets(s5);
printf("请输入减法第二个数,按回车键结束:\n");
gets(s6);
multiply(s5,s6);
*/
//除法



}

相关文档
最新文档