高精乘低精 满分100,我的71,纠个错蟹蟹

代码是这样的:

#include<bits/stdc++.h>
using namespace std;
char sa[10],sb[1010];
int la,lb,lc,jw,f,w,a[10],b[1010],c[102000];
int main()
{
    cin >>sa >>sb;
    la=strlen(sa);
    lb=strlen(sb);
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    for(int i=0;i<la;i++)
        a[la-i-1]=sa[i]-'0';
    for(int i=0;i<lb;i++)
        b[lb-i-1]=sb[i]-'0';
    memset(c,0,sizeof(c));
    jw=0;
    for(int i=0;i<la;i++)
    {
        for(int j=0;j<lb;j++)
        {
            f=a[i]*b[i];
            jw=f/10;
            f%=10;
            w=i+j;
            c[w]+=f;
            c[w+1]+=jw+c[w]/10;
            c[w]%=10;
        }
    }
    lc=la+lb;
    while(c[lc]==0)
        lc--;
    if(lc<0)
        cout<<"0";
    else
        for(int i=lc;i>=0;i--)
            cout<<c[i];
    return 0;
}

(是的没错,我在做高精系列,我又双叒叕来了[捂脸])

错误提示:

输入
1
100000000000000000000000000000000000000000000000000000000000000
输出
0
答案
100000000000000000000000000000000000000000000000000000000000000

输入
9999
100000000000000000000000000000000000000000000000000000000000000
输出
0
答案
999900000000000000000000000000000000000000000000000000000000000000

追问:
我只是想知道为什么会输出0
是lc的问题还是其它什么的

img