#include <stdio.h> #include <stdlib.h> /* 附加题:大整数加法。 实现任意范围的两个整数的加法 ( 整数的范围用 int 型的变量无法表示) */ int main(){ char chs1[100],chs2[100]; scanf("%s", chs1); scanf("%s", chs2); int len1 = 0, len2 = 0; for (; chs1[len1] != 0; ++len1); for (; chs2[len2] != 0; ++len2); char chs3[101]; int carry = 0; //进位 int i = len1 - 1, j = len2 - 1, k = 0; for (; (i >= 0) && (j >= 0); --i, --j){ //chs1与chs2都有数 int num1 = chs1[i] - '0'; int num2 = chs2[j] - '0'; chs3[k++] = ((num1 + num2 + carry) % 10) + '0'; carry = (num1 + num2 + carry) / 10; } for (; i >= 0;-- i){ //加上chs1剩余的数 int num1 = chs1[i] - '0'; chs3[k++] = (num1 + carry) % 10 + '0'; carry = (num1 + carry) / 10; } for (; j >= 0; --j){ //加上chs2剩余的数 int num2 = chs2[j] - '0'; chs3[k++] = (num2 + carry) % 10 + '0'; carry = (num2 + carry) / 10; } if (carry == 1) chs3[k] = '1'; for (int index = k - 1; index >= 0; --index) printf("%c",chs3[index]); printf("\n"); system("pause"); return 0; }