C++中大位数的加法问题

img

代码和运行结果如上,为什么会出现这种情况?大家帮我看一下吧!

可以参考以下代码实现大位数加法运算问题


#include<iostream>
using namespace std;
int main (){ 
    //声明字符串,储存大整数
    string s1,s2;
    int a[1005],b[1005],c[1005];
    cin>>s1>>s2;
    int len1=s1.size();
    int len2=s2.size();
    for (int i=0;i<len1;i++){
        a[i]=s1[len1-1-i]-'0';
    }
    for (int i=0;i<len2;i++){
        b[i]=s2[len2-1-i]-'0';
    }
    int len =max (len1,len2);
    for (int i=0;i<len;i++){
        c[i]=a[i]+b[i]+c[i];
        if (c[i]>=10){
            c[i+1]++;
            c[i]-=10;
        }
    } 
    if (c[len]>0){
        len++;
    }
    int loc=len-1;
    while (c[loc]==0&&loc>0) loc--;
    for (int i=loc;i>=0;i--) cout<<c[i];
    return 0;
}