大数的加法计算
C语言实现大数的加法计算。
#include <stdio.h>
int main()
{
char a[1000];
//获取第一个数
int Count1 = 0;
for(int i=0;(a[i]=getchar())!='\n';i++)
Count1++;
int Cou1 = (Count1%2==0)?Count1/2:(Count1/2+1);
char fnum[Cou1];
for(int i=Cou1-1;i>0;i--)
{
fnum[i]=((2*Cou1-1)<Count1)?(a[2*i]*10+a[2*i+1]-528):(a[2*i-1]*10+a[2*i]-528);
}
fnum[0]=((2*Cou1-1)<Count1)?(a[0]*10+a[1]-528):(a[0]-48);
//获取第二个数
int Count2=0;
for(int i=0;(a[i]=getchar())!='\n';i++)
Count2++;
int Cou2 = (Count2%2==0)?Count2/2:(Count2/2+1);
char snum[Cou2];
for(int i=Cou2-1;i>0;i--)
{
snum[i]=((2*Cou2-1)<Count2)?(a[2*i]*10+a[2*i+1]-528):(a[2*i-1]*10+a[2*i]-528);
}
snum[0]=((2*Cou2-1)<Count2)?(a[0]*10+a[1]-528):(a[0]-48);
//开始结算结果
int CountL=(Cou1<Cou2)?Cou1:Cou2;
int CountH=(Cou1>Cou2)?Cou1:Cou2;
char result[CountH];
char Bool=0;
for(int i=0;i<CountL;i++)
{
result[CountH-1-i]=(Bool==1)?(fnum[Cou1-1-i]+snum[Cou2-1-i]+1):(fnum[Cou1-1-i]+snum[Cou2-1-i]);
Bool=0;
if(fnum[Cou1-1-i]+snum[Cou2-1-i]>100)
{
Bool=1;
result[CountH-1-i]-=100;
}
}
for(int i=0;i<CountH-CountL;i++)
result[i]=(Cou1>Cou2)?fnum[i]:snum[i];
if(Bool==1)printf("1");
for(int i=0;i<CountH;i++)
{
if(result[i]>=10||i==0) printf("%d",result[i]);
else printf("0%d",result[i]);
}
getchar();
}
DEV c++ 编译通过


浙公网安备 33010602011771号