大数求和,如何用3个数组实现?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a[9999]={0},b[9999]={0};
int i=0;///a长度
int j=0;///b长度 
int l=0;///c长度
int c[9999]={0}; 
int main(void)
{
    int f,flage=0;
     for(i=0;;i++)
     {
         f=getchar();
         if(f==' ')
         {
             
             break;
          } 
         a[i]=f;
     }
    for(j=0;;j++)
    {
        f=getchar();
        if(f==10)
        {
            
            break;
        }
        b[j]=f;
    }
////    i>j ? flage=1:flage=0;///判断ij大小,方便求c 
 if(i>j)
  {
    flage=1;
  }
  else
  {
    
    flage=0;
  }
    if(flage==1)
    {
        for(;j>=0;j--)
        {
            c[l]=a[i]-48+b[j]-48;
            l++;
            i--;
            
        }
        for(;i>=0;i--)
        {
            c[l]=a[i]-48;
            l++;
        }
        
    }
    if(flage==0)
    {
        for(;i>=0;i--)
        {
            c[l]=a[i]+b[j]-48-48;
            if(c[l]<0)
            {
                c[l]=0;
            }
            l++;
            j--;
        }
        for(;j>=0;j--)
        {
            c[l]=b[j]-48;
            l++;
        }
        
    }
    int p=l;///p为等等c的输出次数 
    for(int o=0;o<l;o++)///判断是否大于10 
    {
        if(c[o]>=10)
        {
            c[o]=c[o]%10;
            c[o+1]=c[o+1]+1;
        }
     } 
    if(c[p]==0)
    {
        p=p-1;
    }
    for(;p>=1;p--)
    {
        printf("%d",c[p]);
    }
     
    
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果