int main()
char a[250],b[250],sum[250];
int k,l,m,i,flag=0;
for(i=0;i<250;i++)
a[i]=b[i]=sum[i]='0';
scanf("%s %s",a,b);
k=strlen(a);
l=strlen(b);
m=l>k? l:k;
for(i=1;i<=m;i++)
{
sum[m-i]=a[k-i]-'1'+1+b[l-i]-'1'+1+flag;
flag=0;
if(sum[m-i]>9)
{
sum[m-i]-=10;
flag=1;
}
sum[m-i]+='1'-1;
}
if(flag==1) printf("1");
sum[m]='\0';
if(flag!=1)
{
for(;sum[0]=='0';)
for(i=0;i<m;i++) sum[i]=sum[i+1];
if(sum[0]=='\0') sum[0]='0';
}
printf("%s",sum);
return 0;
}
这是用字符串模拟计算大整数。a[250],b[250]代表2个很大的整数,可以有250位
sum是结果。
【以下回答由 GPT 生成】
我可以帮助你分析和解释这段C语言代码的功能,以及可能存在的问题或优化建议。请问有什么问题我可以帮你解答吗?
【相关推荐】