424 - Integer Inquiry

简单的大整数相加,主要需要考虑的事项:
①前置零的清除,但必须保留一位
②sum要逆序输出


#include <stdio.h> #include <string.h> #define M 110 int main() { int sum[M]; char add[M]; memset(sum,0,sizeof(sum)); while(scanf("%s",add)==1 && strcmp(add,"0")!=0) { int i,j,alen; alen=strlen(add); int p,q; q=0; for(i=alen-1,j=0;i>=0;i--,j++) { p=add[i]-'0'+sum[j]+q; sum[j]=p%10; q=p/10; } while(q!=0) { //sum[j]=q; p=sum[j]+q;//###,边界处理出错! sum[j]=p%10; q=p/10; j++; } } int k=M-1; while(k>0 &&!sum[k]) k--;//###,一直未通过,k>0必须要加的条件,确保单个0的输出 while(k>=0) printf("%d",sum[k--]); printf("\n"); return 0; }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值