a+b(高精度)[陈涛]——c语言

#include<stdio.h>
#include<string.h>
char s[1000];--------------------------------------------------//定义一个字符数组
int a[1000]={0},b[1000]={0};------------------------------// 定义两个int类型数组
int main()
{
 int l1,l2,z,i;
 freopen("hp+.in","r",stdin);
 freopen("hp+.out","w",stdout);-----------------------------//进行文件操作
 scanf("%s",s);-----------------------------------------------//读入第一个数
   l1=strlen(s);------------------------------------------------//用string中的strlen函数得到第一个数的长度
    for(i=0;i<=l1-1;i++)--------------------------------------//用for循环来倒叙存入a数组
    {
     a[l1-1-i]=s[i]-'0';
    }
   scanf("%s",s);----------------------------------------------//读入第二个数
  l2=strlen(s);-------------------------------------------------//用string中的strlen函数得到第二个数的长度
    for(i=0;i<=l2-1;i++)--------------------------------------//用for循环来倒叙存入b数组
    {
        b[l2-1-i]=s[i]-'0';
    }
 if(l1>l2)
     z=l1;
 else
     z=l2;-------------------------------------------------------//判断a数组和b数组谁的长度大
    for(i=0;i<=z-1;i++)
    {
        a[i]=a[i]+b[i];
         if(a[i]>=10)
         {
                  a[i+1]=a[i+1]+1;
                  a[i]=a[i]-10;
          }
    }--------------------------------------------------------------//用for循环来进行a,b两数组的加法
    if(a[z]!=0)---------------------------------------------------//判断最高位有没有进位
        z++;
    for(i=z-1;i>=0;i--)-----------------------------------------//倒序输出最后所得答案
       printf("%d",a[i]);
    return 0;
}

 

本程序是由“QinJianCDQZ”老师的谆谆教诲,让我受益终身,但也经自己的双手来敲打一个一个字母所得,我会在c语言的道路上越走越远,得到更好的成绩。耶耶耶耶耶耶耶耶。

                                                                                                                                                                              ---------------------------by 陈涛

posted @ 2016-07-06 19:14  冰杖  阅读(764)  评论(11编辑  收藏  举报