#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;
}