#include <stdio.h>
#include "string.h"
void main()
{
char a[100],b[100];
int c[100],d[100],c1[100],d1[100],tt[100];
int i=0,j=0,t=0,t1=0,t2=0,a1=0,b1=0;
/*将数存入字符型数组,再转换成整形数组,再倒序存入c1,d1数组,方便计算*/
gets(a);
gets(b);
a1=strlen(a);
b1=strlen(b);
for(i=0;i<a1;i++)
c[i]=a[i]-'0';
for(j=0;j<b1;j++)
d[j]=b[j]-'0';
for(i=0;i<a1;i++)
c1[i]=c[a1-i-1];
for(j=0;j<b1;j++)
d1[j]=d[b1-j-1];
/*两个数组比较长度,把短的数组最大位数前补零,与长数组位数相同*/
if(a1<b1)
{
for(i=a1;i<b1;i++)
c1[i]=0;
a1=b1;
}
else
{
for(i=b1;i<a1;i++)
d1[i]=0;
}
/*计算过程*/
for(i=0;i<a1;i++)
{
if(i==0)
{
t=c1[i]+d1[i];
if(t>9)
{
t1=t%10;
t2=t/10;
tt[i]=t1;
}
else
{
tt[i]=t;
t2=0;
}
}
else if(i==(a1-1))
{
t=c1[i]+d1[i]+t2;
if(t>9)
{
t1=t%10;
t2=t/10;
tt[i]=t1;
tt[i+1]=t2;
j=a1+1;
}
else
{
tt[i]=t;
j=a1;
t2=0;
}
}
else
{
t=c1[i]+d1[i]+t2;
if(t>9)
{
t1=t%10;
t2=t/10;
tt[i]=t1;
}
else
{
tt[i]=t;
t2=0;
}
}
}
/*倒序输出*/
printf("\n");
for(i=j-1;i>=0;i--)
printf("%d ",tt[i]);
printf("\n");
}
大数相加,纯c语言编写。
最新推荐文章于 2024-05-19 11:46:58 发布