C++算法题A+B hard报错

C++算法题A+B hard报错
貌似不是头文件的问题,iostream,stdio.h等都尝试了都不行

#include 
using namespace std;
int main(){
    int a, b;
      scanf("%d %d",&a,&b);
      printf("%d",a + b);
  return 0;
}

结果报错

img

10的1000次方啊。定义两个长度为1002的字符串,分别输入两个字符串,然后从最后一位字符开始相加,如果大于10则进位。

#include <stdio.h>
#include <string.h>
int main()
{
    char a[1002];
    char b[1002];
    int c[1003]={0};
    scanf("%s",a);
    scanf("%s",b);
    int la = strlen(a);
    int lb = strlen(b);
    int j = 1002,flag = 0;
    while(la>0 && lb>0)
    {
        int ma = a[la-1]-'0';
        int mb = b[lb-1]-'0';
        int m = ma + mb;
        c[j] += m%10;
        c[j-1] += m/10;
        j--;
        la--;
        lb--;
    }
    if(la >0 )
    {
        for(int i=la-1;i>=0;i--)
        {
            int m = c[j] + a[i]-'0';
            c[j] = m%10;
            c[j-1] += m/10;
            j--;        
        }
    }
    else if(lb > 0)
    {
        for(int i=lb;i>=0;i--)
        {
            int m = c[j] + b[i]-'0';
            c[j] = m%10;
            c[j-1] += m/10;
            j--;        
        }
    }
    for(int i=0;i<1003;i++)
    {
        if(c[i] == 0 && flag == 0)
            continue;
        printf("%d",c[i]);
        flag = 1;
    }
    return 0;
}

这个是大数计算了,最好用字符串,然后模仿加法过程,从字符串最后一位开始相加,如果大于等于10就前面一位进1,以此类推,就是我们平常算加法的一个步骤。