大数相加

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 #define N 100
 5 
 6 int main()
 7 {
 8 
 9     char a[N], b[N];
10     int a_real[N], b_real[N], c[N + 1];
11 
12     int i, j, k = 0;
13     int a_len, b_len;
14     int max, min;
15     int carry_bit = 0, total_bit = 0;
16 
17     memset(c, 0, sizeof(c));
18     memset(a_real, 0, sizeof(a_real));
19     memset(b_real, 0, sizeof(b_real));
20     
21     scanf("%s", &a);
22     scanf("%s", &b);
23 
24     a_len = strlen(a);
25     b_len = strlen(b);
26     
27     i = a_len - 1;
28     j = b_len - 1;
29 
30     while(i != -1)
31     {
32         a_real[k++] = a[i--] - '0';
33     }
34 
35     
36     k = 0;
37     while(j != -1)
38     {
39         b_real[k++] = b[j--] - '0';
40     }
41 
42     max = a_len > b_len ? a_len : b_len;
43     min = a_len > b_len ? b_len : a_len;
44 
45     for(i = 0; i < max; i++)
46     {
47         c[i] = a_real[i] + b_real[i] + carry_bit;
48 
49         if(c[i] > 9)
50         {
51             c[i] -= 10;
52             carry_bit = 1;
53         }
54         else
55         {
56             carry_bit = 0;
57         }
58         
59     }
60 
61     if(carry_bit)
62     {
63         c[max] = 1;
64         total_bit = max + 1;
65     }
66     else
67     {
68         total_bit = max;
69     }
70 
71     for(i = total_bit - 1; i >= 0; i--)
72     {
73         printf("c[%d]:%d\n", i, c[i]);
74     }
75     
76 }

 

posted @ 2013-05-09 19:25  爱无限  阅读(206)  评论(0编辑  收藏  举报