BigData_Jia

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define MaxSize 10000
 4 int n1, n2, i, k, times;
 5 char symbol;
 6 char data1[MaxSize], data2[MaxSize];
 7 int max(int n1, int n2){
 8     if(n1 > n2)
 9         return n1;
10     else
11         return n2;
12 }
13 void getchars_two(char data_one[MaxSize], char data_two[MaxSize]) {
14     int n;
15     scanf("%s%s",data1, data2);
16     n1 = n = strlen(data1);
17     for(i = 0; i < n; ++i){
18         data_one[i] = data1[n - i - 1];
19     }
20     n2 = n = strlen(data2);
21     for(i = 0; i < n; ++i){
22         data_two[i] = data2[n - i - 1];
23     }
24     if(n1 > n2)
25         for(i = n2; i < n1; ++i){
26             data_two[i]  = '0';
27         }
28     else
29         for(i  = n1; i < n2; ++i)
30             data_one[i] = '0';
31 }
32 void getchars_one(char data_one[MaxSize], char data_two[MaxSize]) {
33     char data[MaxSize];
34     int n;
35     gets(data);
36     n1 = n = strlen(data);
37     for(i = 0; i < n; ++i){
38         data_one[i] = data[n - i - 1];
39     }
40     gets(data);
41     n2 = n = strlen(data);
42     for(i = 0; i < n; ++i){
43         data_two[i] = data[n - i - 1];
44     }
45     if(n1 > n2)
46         for(i = n2; i < n1; ++i){
47             data_two[i]  = '0';
48         }
49     else
50         for(i  = n1; i < n2; ++i)
51             data_one[i] = '0';
52 }
53 void big_data_jia(char data_one[MaxSize], char data_two[MaxSize], char data_three[MaxSize]){
54     char data_jin;
55     int Max, value;
56     data_jin = '0';
57     Max = max(n1, n2);
58     for(i = 0; i < Max; ++i){
59         value = (int)data_one[i] + (int)data_two[i] + (int)data_jin - 144;
60         if(value < 10){
61             data_three[i] = (char)(value + 48);
62             data_jin = '0';
63         }
64         else{
65             data_three[i] = (char)(value %10 + 48);
66             data_jin = (char)(value / 10 + 48);
67         }
68     }
69     if(data_jin != '0')
70         data_three[i++] = data_jin;
71 }
72 void print_char(char data_three[MaxSize]){
73     int j;
74     printf("%s + %s = ", data1, data2);
75     j = i - 1;
76     if(data_three[j] == '0') {
77         printf("0\n");
78         return ;
79     }
80     for(; j >= 0; j--){
81         printf("%c", data_three[j]);
82     }
83     printf("\n");
84     if(k != times)
85         printf("\n");
86 }
87 int main(int argc, char const *argv[])
88 {
89     scanf("%d\n", &times);
90     for(k = 1; k <= times; ++k){
91         char data_one[MaxSize], data_two[MaxSize], data_three[MaxSize];
92         getchars_two(data_one, data_two);
93         big_data_jia(data_one, data_two, data_three);
94         printf("Case %d:\n", k);
95         print_char(data_three);
96     }
97     return 0;
98 }

 

posted @ 2018-12-21 10:09  hpu_purzel  阅读(146)  评论(0)    收藏  举报