高精度加法

#include<stdio.h>

#include<string.h>

char s1[1000], s2[1000];//定义字符数组

       int a[1000]={0},b[1000]={0},c[1000]={0};//定义int数组

int main()

{

int l1=0,l2=0,l=0,i;//定义局部变量

scanf("%s",s1); //读S1

scanf("%s",s2);//读S2

l1=strlen(s1); 将s1的长度存到l1里

l2=strlen(s2);将s2的长度存到l2里

for(i=0;i<=l1-1;i++)//for循环倒序存入a数组

{

   a[l1-1-i]=s1[i]-'0';

}

for(i=0;i<=l2-1;i++) for循环倒叙存入b数组

{  

b[l2-1-i]=s2[i]-'0';

}

if(l1>l2) //比较两个变量,将长度长的存入l

l=l1;

else l=l2;

for(i=0;i<=l-1;l++)//for循环做a,b数组的加法

{   c[i]=a[i]+b[i];  //a,b数组之和赋值到c数组里

     if(c[i]>=10)  //判断进位情况

  {  

    c[i+1]=c[i+1]+1;   //进1

    c[i]=c[i]-10; //还10

  }

}

     

}

 if(c[l]!=0)   l++; 判断是否结束

 for(i=l-1;i>=0;i--)   //倒序输出

 printf("%d",c[i]);        

 return 0;

}

原文地址:https://www.cnblogs.com/hxq2003/p/5648695.html