下面两种做法有什么区别吗?
(上面的错的,下面的对的
下面的有限制范围,上面的没有,可是我觉得都一样的呀)
是加法那一段的区别,不是include的问题(有些没打出来)
1.#include
###include
int main() {
char a[100], b[100];
int c[101], d, e,m, i, f = 0;
/*for (i = 0; i < 101; i++) {
c[i] = 0;
}*/
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
scanf("%s%s", a,b);
d = strlen(a);
e = strlen(b);
for (i = 0; i < d; i++)
{
c[i] += a[d - i - 1] - '0';
}
for (i = 0; i < e; i++)
{
c[i] += b[e - i - 1] - '0';
if (c[i] >= 10)
{
c[i + 1]=c[i]/10;
c[i] %= 10;
}
}
for (i = 0; i < d+1||i<e+1; i++)
if (c[i] != 0)
f = i;
for (i = f; i >= 0; i--)
printf("%d", c[i]);
return 0;
}
2.#include
###include
int main()
{
char a[100], b[100], c[101];
memset(c, 0, sizeof(c));//清零
scanf("%s%s", a,b);
int lena = strlen(a);
int lenb = strlen(b);
int i;
for (i = 0; i < lena || i < lenb; i++)
{
if (i < lena)
c[i] += a[lena - i - 1] - '0';
if (i < lenb)
c[i] += b[lenb - i - 1] - '0';
if (c[i] >= 10)
{
c[i + 1] = c[i] / 10;
c[i] %= 10;
}
}
if (lena < lenb)
lena = lenb;
if (c[lena] > 0) printf("%d", c[lena]);//最后一次循环
for (i = lena - 1; i >= 0; i--)
printf("%d", c[i]);
return 0;
}