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 陈涛