#include?<string.h>
#include?<conio.h>
int?main()?{
int?i,j,k,T,carry;
int?lena,lenb,num;
char?ch,c[1000]?=?{0};
char?a[1000],b[1000];
scanf("%d",&T);
while(T?>?0)?{
i?=?0;
printf("\na[]?=?");
while(1)?{?//?讀取a[],'\n'結束讀入過程
fflush(stdin);
ch?=?_getch();
if(ch?==?'\r')?break;
if(ch?>=?'0'?&&?ch?<=?'9')?{
a[i++]?=?ch;
printf("%c",ch);
}
}
a[i]?=?'\0';
printf("\nb[]?=?");
i?=?0;
while(1)?{?//?讀取b[],'\n'結束讀入過程
fflush(stdin);
ch?=?_getch();
if(ch?==?'\r')?break;
if(ch?>=?'0'?&&?ch?<=?'9')?{
b[i++]?=?ch;
printf("%c",ch);
}
}
b[i]?=?'\0';
lena?=?strlen(a);
lenb?=?strlen(b);
carry?=?0;?//?進位
k?=?0;
//?從個位開始加,逆向存儲相加結果
for(i?=?lena?-?1,j?=?lenb?-?1;?i?>=?0?&&?j?>=?0;?--i,--j)?{
num?=?a[i]?+?b[j]?-?'0'?-?'0'?+?carry;?//?求得該位的和
c[k++]?=?num?%?10?+?'0';?//?獲取該位數字
carry?=?num?/?10;?//?獲取進位
}
while(i?>=?0)?{?//?處理更長的數
num?=?a[i--]?+?carry?-?'0';
c[k++]?=?num?%?10?+?'0';
carry?=?num?/?10;
}
while(j?>=?0)?{?//?處理更長的數
num?=?a[j--]?+?carry?-?'0';
c[k++]?=?num?%?10?+?'0';
carry?=?num?/?10;
}
if(carry)?c[k++]?=?carry?+?'0';
c[k]?=?'\0';
for(i?=?0;i?<?k?/?2;i++)?{?//?把計算結果改作慣用順序
ch?=?c[i];
c[i]?=?c[k?-?1?-?i];
c[k?-?1?-?i]?=?ch;
}
printf("\n%s?+?%s?=?%s\n",a,b,c);
--T;
}
return?0;
}