一直找不到错误,求大佬帮忙康康orz
#include<bits/stdc++.h>
using namespace std;
char n[105],m[105];
int a[1000],b[1000],c,ans[1000];
int main()
{
scanf("%s%s",n+1,m+1);
int ln=strlen(n+1),lm=strlen(m+1);
for(int i=1;i<=ln;i++)
a[i]=n[ln-i+1]-'0';
for(int i=1;i<=lm;i++)
b[i]=m[lm-i+1]-'0';
int len1=min(ln,lm),len2=max(ln,lm);
if(ln>lm)
for(int i=1;i<=len1;i++)
{
for(int j=1;j<=len2;j++)
{
ans[i+j-1]+=a[j]*b[i]+c;
c=ans[i+j-1]/10;
ans[i+j-1]%=10;
}
ans[i+len2]+=c;
c=0;
// memset(c,0,sizeof(c));
// if(c!=0) ans[i+len2]=c,c=0;
}
else
for(int i=1;i<=len1;i++)
{
for(int j=1;j<=len2;j++)
{
ans[i+j-1]+=a[i]*b[j]+c;
c=ans[i+j-1]/10;
ans[i+j-1]%=10;
}
ans[i+len2]+=c;
c=0;
// if(c!=0) ans[i+len2]=c,c=0;
//memset(c,0,sizeof(c));
}
if(ans[ln+lm]!=0) ln++;
for(int i=ln+lm-1;i>=1;i--)
printf("%d",ans[i]);
return 0;
}