大整数加减乘法C语言版本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(m
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);
*/
//除法
}