关于网友提出的“ 大数加法的程序不知道错在哪里求大神帮忙看看吧”问题疑问,本网通过在网上对“ 大数加法的程序不知道错在哪里求大神帮忙看看吧”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 大数加法的程序不知道错在哪里求大神帮忙看看吧描述:
#include
#include
#include
#define Max 200
char bigadd(char a[],char b[],char sum[]);
int reverse(char str[],int len){
char temp;
int i;
for(i=0;i<(len+1)/2;i++){
temp=str[i];
str[i]=str[len-i-1];
str[len-i-1]=temp;
}
return 0;
}
int main()
{
char a[Max];
char b[Max];
char sum[Max];
memset(a,'0',Max);
memset(b,'0',Max);
memset(sum,'0',Max);
scanf("%s%s",a,b);
bigadd(a,b,sum);
printf("%s",sum);
system("pause");
}
char bigadd(char a[],char b[],char sum[])
{
int i=0;
int j=0;
int c=0;
int writeflag=0;
char result[Max];
int lenA=strlen(a);
int lenB=strlen(b);
int len;
memset(result,'0',Max);
reverse(a,lenA);
reverse(b,lenB);
for (i=0;i<>
{
a[i]=a[i]-'0';
}
for (i=0;i<>
{
b[i]=b[i]-'0';
}
for (i=0;i<><>
{
result[i]=(a[i]+b[i]+c)%10+'0';//得到末位
c=(a[i]+b[i]+c)/10;//得到进位
}
len=strlen(result);
reverse(result,len);
writeflag=0;
for(i=0;i<>
if(result[i]!='0') writeflag=1;
if(writeflag==1)
sum[j++]=result[i];
}
return 0;
}