c语言 大数相加

2024-11-25 09:13:39
推荐回答(1个)
回答1:

#include

void main()
{
char a[10],b[10];
int c[10]={0},d[10]={0},e[11]={0};
scanf("%s",&a);
scanf("%s",&b);
int k,i,f=0,max,min;
int dight=0,digit=1;//dight进位 digit总位数 
k=(strlen(a)-1);
i=(strlen(b)-1);
max=k>i?k:i;
min=kwhile(k!=-1)
{
d[f]=a[k]-48;
k--;
f++; 
}
f=0;
while(i!=-1)
{
c[f]=b[i]-48;
f++;
i--;
}

for(f=0;f<=min;f++)
{
e[f]=d[f]+c[f]+dight;
dight=0;
if(e[f]>9) 
{
if(f!=0)
{e[f]=e[f]-10;dight=1;}
else
{e[f]=e[f]-9;dight=1;}
}
digit++;

}
int s=1;
for(f=1;f<=(max-min);f++)
{
e[min+s]=a[min+s]+dight;
dight=0;
if(e[min+s]>9) {e[min+s]=e[min+s]-10;dight=1;}
s++;
digit++;
if(e[max]>9) digit++;
}

int u;
for(u=0;uprintf("%d",e[u]);
}