Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:poj这里AC了 但OpenJudge上却WA了 ,已调试出来,给后人一个经验

Posted by qq349341704 at 2017-06-17 05:11:31 on Problem 1001
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator