这个高精乘哪里出问题了,数据代12345678900 98765432100就出问题了?

#include<bits/stdc++.h>
using namespace std;
char s1[301],s2[301];
int a[301]={0},b[301]={0},c[601]={0};
int main()
{
    int lena,lenb,lenc,x;
    gets(s1);
    gets(s2);
    lena=strlen(s1);
    lenb=strlen(s2);
    for(int i=1;i<=lena;i++)
      a[i]=s1[lena-i]-'0';
    for(int i=1;i<=lenb;i++)
      b[i]=s1[lenb-i]-'0';
    lenc=lena+lenb;
    for(int i=1;i<=lena;i++)
    {
        x=0;
        for(int j=1;j<=lenb;j++)
        {
         c[i+j-1]+=a[i]*b[i]+x;
         x=    c[i+j-1]/10;
         c[i+j-1]%=10;
        }
        c[i+lenb]=x;
    }
    while(c[lenc]==0&&lenc>1)
    lenc--;
    for(int i=lenc;i>0;i--)    
    cout<<c[i];
    cout<<endl;
    return 0;
}

c[i+j-1]+=a[i]*b[i]+x这里b[i]改成b[j]了还是有问题