我自己写了一个版本,用于模拟小学数学中的加法操作过程,代码如下:
1 #include <stdio.h> 2 #include <string.h> 3 4 const int MAX_LEN = 1002; 5 6 void long_add(char *result, char *A, char *B) 7 { 8 int len_a = strlen(A), len_b = strlen(B); 9 int a, b, t; 10 int carry = 0; 11 12 while (len_a > 0 || len_b > 0){ 13 if (len_a > 0) a = A[len_a-1] - '0'; 14 else a = 0; 15 16 if (len_b > 0) b = B[len_b-1] - '0'; 17 else b = 0; 18 19 t = a + b + carry; 20 carry = t / 10; 21 t = t % 10; 22 23 if (len_a > len_b){ 24 result[len_a-1] = t + '0'; 25 }else{ 26 result[len_b-1] = t + '0'; 27 } 28 29 len_a--; 30 len_b--; 31 } 32 } 33 34 void reset(char * array) 35 { 36 int i, len = sizeof(array); 37 for (i = 0; i < len; i++) 38 array[i] = '