2016/7/6 真·高精度计算器-加 (火速跟完!!!)

我又来写了。。。。。。

源码:

#include<stdio.h>
#include<string.h>
int a[1000]={0},b[1000]={0};
int main(void)
{
char s1[1000],s2[1000];                                //设定2个字符串s1,s2
int l1=0,l2=0,l,i;

scanf("%s",s1);
scanf("%s",s2);                                     //输入char字符串s1的值
l1=strlen(s1);                                       //将s1的长度的值赋给l1

l2=strlen(s2);                                       //将s1的长度的值赋给l2
for(i=0;i<=l1-1;i++)                                   //for_把不能计算的字符串s1赋给数组计算
{
  a[l1-1-i]=s1[i]-'0';
}
for(i=0;i<=l2-1;i++)                                   //for_把不能计算的字符串s2赋给数组计算
{
  b[l2-1-i]=s1[i]-'0';
}
if(l1>l2)                                         //判断字符串长度,并对应比对大小

{
  l=l1;

}
else
{

  l=l2;

}
for(i=0;i<=l-1;i++)                                   //由for循环算出数组a[i]与a[i]和并赋予给a[i]
{
  a[i]=a[i]+b[i];
  if(a[i]>=10)                                     //判断进位条件并对位相加
  {
    a[i+1]=a[i+1]+1;
    a[i]=a[i]-10;
  }
}
if(a[l]!=0)                                        //确定首位是否进位

{
  l++;                                         //为后面程序变化数组位置铺垫

}
for(i=l-1;i>=0;i--)                                    //倒叙输出把原本的反过来

{
  printf("%d",a[i]);

}
  return 0;
}

 

 作者评语:

    这次的高精度的计算器是一个无限加法,不论多大,都可以一次加起来。经过之前的反馈,我更正了字体打彩太亮的缺点,这次由于博客的复制链接卡段所以可能会造成复制的代码不可使用,源代码c源文件将在1-3日内更新!

有错请留言评论,有错请指出。

 

 

                          By    He_He _S

 

                    小组 @成都七中高新OI2015

 

2016/7/6      张呵呵于18:34时更改  |第一次|

2016/7/6      张呵呵于20:44时更改  |第二次|

 

posted on 2016-07-06 18:35  张呵呵  阅读(581)  评论(7编辑  收藏  举报

导航