题目:规定输入的数字长度不超过256. 注:程序中输入、输出使用字符串存储,使用了vs中扩展的函数 strrev(亦可自己实现) 此外为了操作方便对给定的输入数字进行了反转,因此只能针对非只读字符串。 源码如下: #include <stdio.h> #include <string.h> enum {MAXSIZE = 256 + 2, RADIX = 10}; /* ans = first + second */ char *big_num_add(char *ans, char *first, char *second) { int i = 0; /* ans 的索引 */ int carry = 0; /* 进位,初始为0 */ char *strA = strrev(first); char *strB = strrev(second); while (*strA || *strB) { carry += (*strA++ & 0xf) + (*strB++ & 0xf); ans[i++] = carry % RADIX + '0'; carry /= RADIX; } if (carry) ans[i++] = carry + '0'; ans[i] = 0; strrev(first); strrev(second); return strrev(ans); }