zoj 1292 Integer Inquiry

 百练的加强版~~其实也没加强多少

只是加了个输入多个数而已

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
 	int ncase,i,len1,len2,maxlen,k = 0;
 	int a,b;
 	char s1[110],s2[110];
 	int num1[110],num2[110];
 	
 	scanf("%d", &ncase);
 	while( ncase-- )
 	{
		scanf("%s", s1);  
		                   
		len1 = strlen(s1);
		
		maxlen = len1;
		
		k = 0;
		
		memset(num1,0,sizeof(num1));                          //和for(i=0; i<110; i++) num1[i] = 0; 功能一样 
		
		for(i=len1-1; i>=0; i--)                               //num1存入数,未存入的项还为0 .
		{
			num1[k++] = s1[i] - '0';                           
		}
	
		while( scanf("%s", s2) && strcmp(s2,"0") )            
		{
			k = 0;
			
			memset(num2,0,sizeof(num2));                      //初始化num2  
			
			len2 = strlen(s2);
			
			for(i=len2-1; i>=0; i--)
			{
				num2[k++] = s2[i] - '0';                     //小小计数器~~ 
			}
			for(i=0; i<len2; i++)                           //i<len2 不怕len2=1,因为后面都是0,还能加 
			{
				num1[i] += num2[i];
			}
			if (len2 > maxlen)                                  //最大项 
			{
				maxlen = len2;
			}
			
		}
		
		for(i=0; i<maxlen; i++)                               //进位 
		{
            a = b = 0;
            
			if (num1[i] > 9)
		    {
                a=num1[i]/10;
                
                b=num1[i]%10;
                
				num1[i] = b;
				
				num1[i+1] = num1[i+1] + a;                   //90+10=100,二位变三位 
			} 
			a = b = 0;
		}
		
		if( num1[maxlen] != 0 )                              //进位后,maxlen变大,so..  
		{ 
            maxlen++;
		}	 
		
		for(i=maxlen-1; i>=0; i--)
		{
			printf("%d",num1[i]);
		}
		if (ncase) printf("\n\n");
		
	}system("pause");
	
	return 0;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值