Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:poj这里AC了 但OpenJudge上却WA了 ,已调试出来,给后人一个经验In Reply To:poj这里AC了 但OpenJudge上却WA了 ,不知道什么原因 Posted by:qq349341704 at 2017-06-16 11:30:39 调试了一天一夜终于知道为什么pojAC OpenJudge WA了, 与数据没有任何关系, 因为想到char ch[LEN]比int ch[LEN] 理论上节省空间, tip:均对数组进行了初始化。 进行大数乘法的时候,将每一位的结果x 进行x+'0'存入ch数组 返回的时候直接返回字符数组名称ch,即头指针,发现末尾有奇怪字符。 于是又追加一步 ch[LEN]=‘\0‘ 操作,于是poj AC了。 OpenJudge提交30次WA掉 苦思不得其解,测了一天想到会不会是字符的问题 于是注释掉ch[LEN]=‘\0‘,改为用int数组存放每一位结果,遍历一遍转为字符串返回,OpenJudge AC了 总结原因, 1.c/c++不对数组和指针的寻址范围进行严格的检查 2.可能有什么奇怪的数据将结束符覆盖掉了,导致返回字符数组的头指针会指向越界的范围,所以可能会产生奇怪的字符,用int 数组正常 3.本人基础知识不牢固! Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator