#include
int main()
{
int k,A, B;
int m, n;
scanf_s("%d", &k);
for (; k > 0; k--)
{
int a[2][11], c[11];
scanf_s("%d %d", &A, &B);
for (m = 0; A != 0; m++)
{
a[0][m] = A % 10;
A = A / 10;
}
for (n = 0; B != 0; n++)
{
a[1][n] = B % 10;
B = B / 10;
}
if (m > n)
n = m;
for (m=0; m <=n; m++)
{
c[m] = a[0][m] + a[1][m];
if (c[m] > 10)
c[m] = c[m] % 10;
}
while (c[m-1]==0)
{
m--;
}
for (; m >= 0; m--)
{
printf("%d", c[m]);
}
printf("\n");
}
}
为什么运行出来的结果是我想要的结果加上一个负大数?显示a[ ][ ]未被定义,c[ ]读取了无效数又是为什么?
a[2][11]没有初始化,导致你在对齐m和n的时候,有一个数字的高位存的并不是0,而是个随机数
再说,你算加法的时候只管取余,不进位的吗