zoukankan      html  css  js  c++  java
  • POJ 1504,ZOJ 2001,UVA 713, Adding Reversed Numbers,错误,已找到错误

    ------------------------------------------------------------

    以此题警告自己:


    总结,

    1.在数组的使用时,一定别忘了初始化

    2.在两种情况复制代码时,一定要小心,注意修改变量名,一不留神就会带来不可估量的后果,一定要仔细挨着一个一个变量的修改,别跳着看着哪个变量就改哪一个变量!

    (这个题目中,就是复制了一下,代码,ca,我找了一下午的错。。。。还好终于找到了,一个字母的错,)


    -----------------------------------------------------------

    //正确,已改正
    
    #include<iostream>
    #include<cstring>
    #include<cmath>
    using namespace std;
    char a[1000];
    char b[1000];
    int main()
    {
    	int n;
    	int i;
    	int j;
    	int co;
    	int la,lb,lc;
    	cin>>n;
    	while(n--)
    	{
    		memset(a,0,sizeof(a));//此处注意初始化!!!
    		memset(b,0,sizeof(b));//此处注意初始化!!!
    		
    		cin>>a;
    		
    		cin>>b;
    		
    		co=0;
    		la=strlen(a);
    		lb=strlen(b);
    		if(la>lb)
    		{
    			for(i=0;i<lb;i++)
    			{
    				a[i]='0'+(a[i]-'0')+(b[i]-'0')+co;
    				if(a[i]>'9')
    				{
    					a[i]=a[i]-10;
    					co=1;
    				}
    				else
    					co=0;
    			}
    			for(i=lb;i<la;i++)
    			{
    				a[i]=a[i]+co;
    				if(a[i]>'9')
    				{
    					a[i]=a[i]-10;
    					co=1;
    				}
    				else
    					co=0;
    			}
    			a[la]='0'+co;
    			la=strlen(a);
    			
    			for(i=la-1;i>=0;i--)
    			{
    				if(a[i]!='0')
    					break;
    				a[i]='';
    			}
    			if(i==-1) cout<<0<<endl;//此题可以不必考虑0的情况,也可通过//  -----------(另外  此处 输出的整数 0 也可以是 字符  '0'  )
    			else
    			{
    				for(i=0;i<la;i++)
    				{
    					if(a[i]!='0')
    						break;
    				}
    				
    				for(;a[i];i++)
    				{
    					if(a[i]!='')
    						cout<<a[i]-'0';//  -----------(  另外  此处 输出的整数  a[i]-'0'   也可以是 直接输出 字符   a[i]     )
    				}
    				cout<<endl;
    			}
    		}
    		else
    		{
    			for(i=0;i<la;i++)
    			{
    				b[i]='0'+(b[i]-'0')+(a[i]-'0')+co;
    				if(b[i]>'9')
    				{
    					b[i]=b[i]-10;
    					co=1;
    				}
    				else
    					co=0;
    			}
    			for(i=la;i<lb;i++)
    			{
    				b[i]=b[i]+co;
    				if(b[i]>'9')//  ////  就在这!!!错了一个字母,正确应该是b[i],原来是a[i] ,所以错了  !!是 复制的时候 没有 完全把 变量名 改完 ,。
    				{
    					b[i]=b[i]-10;
    					co=1;
    				}
    				else
    					co=0;
    			}
    			b[lb]='0'+co;
    			lb=strlen(b);
    			
    			for(i=lb-1;i>=0;i--)
    			{
    				if(b[i]!='0')
    					break;
    				b[i]='';
    			}
    			if(i==-1) cout<<0<<endl;//此题可以不必考虑0的情况,也可通过//  -----------(另外  此处 输出的整数 0 也可以是 字符  '0'  )
    			else
    			{
    				for(i=0;i<lb;i++)
    				{
    					if(b[i]!='0')
    						break;
    				} 
    				for(;b[i];i++)
    				{
    					if(b[i]!='')
    						cout<<b[i]-'0';//  -----------(  另外  此处 输出的整数  a[i]-'0'   也可以是 直接输出 字符   a[i]     )
    				}
    				cout<<endl;
    			} 
    		}    
         }
    	 return 0; 
    }
    




    ---------------------------------------------------------

    此题目 不包括 

    002    1

    的情况,

    就是 没有 前置 0 的情况 ,因此可以不必考虑 


    ---------------------------------------------------------

    //以下代码为 网上代码,函数有待研究

    -------------------------------------

    //函数有待研究
    
    
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    int main(void)
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		int a,b;
    		char s1[13],s2[13];
    		scanf("%d%d",&a,&b);
    		sprintf(s1,"%d",a);
    		sprintf(s2,"%d",b);
    		reverse(s1,s1+strlen(s1));
    		reverse(s2,s2+strlen(s2));
    		sscanf(s1,"%d",&a);
    		sscanf(s2,"%d",&b);
    		sprintf(s1,"%d",a+b);
    		reverse(s1,s1+strlen(s1));
    		sscanf(s1,"%d",&a);
    		printf("%d
    ",a);
    	}
    	return 0;
    }
    




  • 相关阅读:
    ZooKeeper学习第一期---Zookeeper简单介绍
    安装zookeeper(单机,伪集群)
    一张图看懂DNS域名解析全过程
    CDN基本工作过程
    第十七章、程序管理与 SELinux 初探
    直方图均衡化的缺点——不平坦
    电感耦合等离子体质谱法响应时间
    C++内容记录
    图像质量评价-NQM和WPSNR
    分颜色通道SR的相关论文
  • 原文地址:https://www.cnblogs.com/gongpixin/p/4477486.html
Copyright © 2011-2022 走看看