#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
int add(char A[],char B[],char C[]){
int lenA=strlen(A);
int lenB=strlen(B);
int lenC =0;
int j =lenB-1;
lenC =strlen(A);
//从最后一位加起
for (int i = lenA-1; i >=0 ; i--)
{
C[i]=C[i]+A[i] - '0'+B[j] - '0';
//判断是否是两位数 注意进位
if(C[i] >= 10 && i!=0) {
C[i-1]++;
C[i]%=10;
}
j--;
//加完后保留没参加加法的位数
if(j<0) {
for (int j = i-1; j >=0; j--)
{
C[j]=C[j]+A[j]-'0';
//如果有进位 继续进位
if(C[j] >= 10 && j!=0) {
C[j-1]++;
C[j]%=10;
}
}
break;
}
}
return lenC;//返回加完后的数组长度遍历输出用
}
char A[10001];
char B[10001];
char C[10001];
int main() {
//C语言输入字符串
scanf("%s",&A);
scanf("%s",&B);
//获取字符串的长度
int lenA=strlen(A);
int lenB=strlen(B);
int n=0;
//确定数组长度 确保数组位数大的在前
if(lenA < lenB) n=add(B,A,C);
else n=add(A,B,C);
//遍历数组显示加法后的结果
for (int i = 0; i < n; i++)
{
printf("%d",C[i]);
}
return 0;
}
测试数据: