调了无数次了,还是不明白哪错了
#include<stdio.h>#include<memory.h>
#define MAXSIZE 1025
void add(char add1[],char add2[] )
{
char sum[2000];
int len1,len2,k,i,j;
memset(sum,'0',2000);
len1=strlen(add1);
len2=strlen(add2);
if(len1>=len2)
{
i=len1-1;
j=len2-1;
for(;j>=0;j--)
{
sum[len1]=add1[i]+add2[j]+sum[len1]-144;
if(sum[len1]>9)
{
sum[len1]-=10;
sum[len1-1]++;
}
sum[len1]+=48;
len1--;
i--;
}
for(;i>=0;i--)
{
sum[len1]=sum[len1]+add1[i]-96;
if(sum[len1]>9)
{
sum[len1]-=10;
sum[len1-1]++;
}
sum[len1]+=48;
len1--;
}
if(sum[0]!=48)
{
for(i=0;i<len1;i++)printf("%c",sum[i]);
}
else
{
for(i=1;i<len1;i++)printf("%c",sum[i]);
}
}
else
{
i=len2-1;
j=len1-1;
for(;j>=0;j--)
{
sum[len2]=add1[i]+add2[j]+sum[len2]-144;
if(sum[len2]>9)
{
sum[len2]-=10;
sum[len2-1]++;
}
sum[len2]+=48;
len2--;
i--;
}
for(;i>=0;i--)
{
sum[len2]=sum[len2]+add1[i]-96;
if(sum[len2]>9)
{
sum[len2]-=10;
sum[len2-1]++;
}
sum[len2]+=48;
len2--;
}
if(sum[0]==48)
{
for(k=1;i<len2;k++)printf("%c",sum[k]);
}
else
{
for(k=0;i<len2;k++)printf("%c",sum[k]);
}
}
}
main()
{
char num1[1000],num2[1000];
scanf("%s%s",&num1,&num2);
void add(char add1[],char add2[]);
add(num1,num2);
}
是我编的实验两个大数加法运算的,不知道为什么总不行。。。