杭电1002,请问哪里错了

2025-03-03 04:25:20
推荐回答(2个)
回答1:

#include
#include
#include
#define NUMOF(c) ((c) ? (c) - '0' : 0)
struct node {
char s[1024];
char s1[1024];
char r[1024];
} st = {{0},{0},{0}};
char *strrev(char *s)
{
char *p, *q, c;
p = q = s;
while (*q)
q++;
q--;
while ((p-q) < 0) {
c = *p;
*p = *q;
*q = c;
p++;
q--;
}
return s;
}
int main(void)
{
struct node *p = &st;
int i, ii = 0, n;
scanf("%d", &n);
while (ii < n) {
memset(p->r, 0, 1000);
memset(p->s, 0, 1000);
memset(p->s1, 0, 1000);
scanf("%s%s", p->s, p->s1);
++ii;
strrev(p->s);
strrev(p->s1);
i = 0;
while (p->s[i] || p->s1[i] || p->r[i]) {
p->r[i] += NUMOF(p->s[i]) + NUMOF(p->s1[i]);
if (p->r[i] > 9) {
p->r[i+1] = p->r[i] / 10; p->r[i] %= 10;
}
p->r[i] += '0';
i++;
}
strrev(p->s);
strrev(p->s1);
strrev(p->r);
printf("Case %d:\n%s + %s = %s\n", ii, p->s, p->s1, p->r);
if (ii != n) putchar('\n');
}
return 0;
}

这个是AC的代码 给你参考 希望可以帮到你

回答2:

。。。好好练吧