首页 > 代码库 > POJ 1504,ZOJ 2001,UVA 713, Adding Reversed Numbers,错误,已找到错误
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]=‘\0‘; } 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]!=‘\0‘) 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]=‘\0‘; } 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]!=‘\0‘) 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\n",a); } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。