ACM_1 大数求和

 1 /*1
 2 *2014.11.18
 3 *大数求和
 4 */
 5 #define _CRT_SECURE_NO_WARNINGS
 6 #include <stdio.h>
 7 #include <string.h>
 8 int main()
 9 {
10     char a[1000], b[1000], c[1001];
11     int i, j = 1, p = 0, n, n1, n2;
12     scanf("%d", &n);
13     while (n)
14     {
15         scanf("%s %s", a, b);
16         printf("Case %d:
", j);
17         printf("%s + %s = ", a, b);
18         n1 = strlen(a) - 1;
19         n2 = strlen(b) - 1;
20         for (i = 0; n1 >= 0 || n2 >= 0; i++, n1--, n2--)
21         {
22             if (n1 >= 0 && n2 >= 0){ c[i] = a[n1] + b[n2] - '0' + p; } //要减去'0',因为'0'被多加了一次,若三个数相加,则要减'0'*2
23             if (n1 >= 0 && n2<0){ c[i] = a[n1] + p; }
24             if (n1<0 && n2 >= 0){ c[i] = b[n2] + p; }
25             p = 0;
26             if (c[i]>'9'){ c[i] = c[i] - 10; p = 1; }
27         }
28         if (p == 1){ printf("%d", p); }
29         while (i--)
30         {
31             printf("%c", c[i]);
32         }
33         j++;
34         if (n != 1){ printf("

"); }
35         else { printf("
"); }
36         n--;
37     }
38 }
原文地址:https://www.cnblogs.com/mrethan/p/4104990.html