#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
int add(char num1[],char num2[],int sum[]){
    //定义变量 
	int i=0,len1=0,len2=0,len=0,j=0;
	int temp[MAX] = {0};
	
	//计算字符串的长度,len为长度长的一位。 
	len1=strlen(num1);
	len2=strlen(num2);
	len=(len1>len2)?len1:len2;
	
	//两个大数我们可以用数组来保存,
	//然后在数组中逐位进行相加,再判断该位相加后是否需要进位,
	//为了方便计算,我们将数字的低位放在数组的前面,高位放在后面。
	for(i=len1-1,j=0;i>=0;i--,j++){
		sum[j]=num1[i]-'0';
	}
	for(i=len2-1,j=0;i>=0;i--,j++){
		temp[j]=num2[i]-'0';
	}

    //两个数相加 
   for(i=0;i<len;i++){
   sum[i]+=temp[i];
   if(sum[i]>9){
   	sum[i]-=10;
   	sum[i+1]++;
    }
   }
   
   //判断是否有进位 
   if(sum[len]!=0){
   	len++;
   } 
   //返回长度 
   return len;
}
int main(int argc, char *argv[]) {
	//只能够进行加法,并且是同符号。 
	char num1[MAX],num2[MAX];
	int sum[MAX]={0},len,i;
	printf("please enter the first number\n"); 
	gets(num1);
	printf("please enter the second number\n"); 
	gets(num2);
	len=add(num1,num2,sum);
	printf("the result is\n");
	for(i=len-1;i>=0;i--){
		printf("%d",sum[i]);
	}
	return 0;
}