n)?m:n;for(i=0,j=m-1;i{a" />

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

#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);
*/
//除法



}

相关文档
最新文档