#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 10000000;
//大数相加
void main(){
char num1[MAX];
char num2[MAX];
int length1,length2;
while(scanf("%s%s",num1,num2)!=EOF){
length1=strlen(num1);
length2=strlen(num2);
caladd(num1,num2,length1,length2);
}
return 0;
}
void caladd(char *num1,char *num2,int length1,int length2)
{
int result[MAX] = {0},a[MAX] = {0},b[MAX] = {0},c[MAX];
c[0] = 0;
if(num1==NULL||num2==NULL)return ;
if(length1<=0||length2<=0) return ;
int k = length1>length2?length1:length2;
//字符串转化为整形
for(int i=0;i<length1,++i) a[i] = num1[length1-i-1]-'0';
for(int i=0;i<length2,++i) b[i] = num2[length2-i-1]-'0';
//在看谁的大
for(int i=0;i<k;++i){
c[i]+=(a[i]+b[i])%10;//如果a[i]+b[i]<10 那么c[i] = a[i]+b[i];
c[i+1] =(a[i]+b[i])/10;
if(c[i]!=0)k++;//需要进位
}
//倒序输出相加的结果
for(i=k-1;i>=0;--i){
printf("%d",c[i]);
}
}
转载请注明原文地址: https://ju.6miu.com/read-1298220.html