C语言用数组实现长整数的加法,我写的代码哪里错了?

发布网友 发布时间:2024-10-24 09:38

我来回答

1个回答

热心网友 时间:2024-10-31 21:54

#include<stdio.h>
#include<string.h>
int main(void)
{
int n, q;
scanf("%d ", &n);
for (q = 1; q <= n; q++)
{
char s1[1001], s2[1001];
int a[1001] = { 0 }, b[1001] = { 0 }, c[1001] = { 0 }, m, n, i, j, d;
gets(s1);
gets(s2);
m = strlen(s1);
n = strlen(s2);
if (m<n)
j = n;
else
j = m;
d = j;
for (i = 0; i < m; d--, i++)
a[d] = s1[m - i - 1] - '0';
d = j;
for (i = 0; i < n; d--, i++)
b[d] = s2[n - 1 - i] - '0';
d = j;
for (i = d; i >= 0; i--)
c[i] = a[i] + b[i];
for (i = d; i >= 0; i--)
{
if (c[i] >= 10)
{
c[i] -= 10;
c[i - 1]++;
}
}
i = 0;
while (i < d && c[i] == 0) i++;
for (; i <= d; i++)
printf("%d", c[i]);
printf("\n");
}
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com