大数相加 + 方法1

void main()
{
char a[200],b[100],temp[100],temp1;
int lena,lenb,i;
int sum=0;
gets(a);
gets(b);
strrev(a);
strrev(b);
lena=strlen(a);
lenb=strlen(b);
if(lenb > lena)   //两个大数进行比较,哪个小存在b数组中,大的在a数组中
{
strcpy(temp,b);
strcpy(b,a);
strcpy(a,temp);
temp1 = lena;
lena = lenb;
lenb = temp1;


}


for(i=0;i<lenb;i++)  //进位处理
{
sum +=(a[i]-'0')+(b[i]-'0');   
a[i] = sum%10 +'0';
sum /=10;  
}
if(sum != 0)   //最高位有进位
{
for(;i<lena;i++)
if(sum==0) break;
else
{
sum+=a[i]-'0';
a[i] = sum%10+'0';
sum/=10;
}
if(i==lena && sum!=0)
{ a[i] = sum+'0';a[++i]='\0';}



strrev(a);    //将数字最高位到低为  从前排到后
puts(a);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值