-
-
[求助]C语言如何实现两个大整数相加?
-
发表于:
2008-10-29 19:43
6158
-
比如123456789+123456789
我写了一下,不过很多BUG,比如遇到些特殊情况就处理不了。还请大家帮帮忙~
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
static int flag=0;
char n1[100];
char n2[100];
char temp[100];
printf("请输入第一个数字");
gets(n1);
printf("请输入第二个数字");
gets(n2);
int i,j,n1_L,n2_L,endLen;
n1_L=strlen(n1);
n2_L=strlen(n2);
if(n1_L>n2_L)
{
strcpy(temp,n1);
strcpy(n1,n2);
strcpy(n2,temp);
}
for(i=n1_L-1,j=n2_L-1,endLen=n2_L;i>=0,j>=0,endLen>=0;i--,j--,endLen--)
{
int n1_x=(int)(n1[i]-48);
if(n1_x<0)break;
int n2_y=(int)(n2[j]-48);
if(n1_x+n2_y+flag>10)
{
n2[j]=(n1_x+n2_y+flag)%10;
flag=1;
}
else
{
n2[j]=(char)(n1_x+n2_y+flag+48);
flag=0;
}
}
printf("相加后得到的数字%s\n",n2);
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!