free pascal 哪里错了?

[复制链接]
查看11 | 回复4 | 2013-3-3 22:11:57 | 显示全部楼层 |阅读模式
【可能1】:源程序【c:fpc\2.6.2\bin\i386-win32\1012315.exe】被删了或掉了。
出错在运行上【可能2】晕了,你这题还真折磨人!愣是找到不问题所在。现在能确定的是,在sqrt(2003*x*y)这句上引发了问题。Free pascal给出的问题是算术上溢,但我单独计算sqrt(2003*5000*5000)又不会引发错误,让人困惑。 用例:var x:longintbeginfor x:=1 to 214 dowrite (sqrt(2003 * 5000 * x));end.当x≥215时,即出现 exitcode=215错误。...
回复

使用道具 举报

千问 | 2013-3-3 22:11:57 | 显示全部楼层
晕了,你这题还真折磨人!愣是找到不问题所在。现在能确定的是,在sqrt(2003*x*y)这句上引发了问题。Free pascal给出的问题是算术上溢,但我单独计算sqrt(2003*5000*5000)又不会引发错误,让人困惑。用例:var x:longintbeginfor x:=1 to 214 dowrite (sqrt(...
回复

使用道具 举报

千问 | 2013-3-3 22:11:57 | 显示全部楼层
sqrt(2003*x*y)时2003*x*y超了longint了可以:sqrt(2003)*sqrt(x)*sqrt(y)...
回复

使用道具 举报

千问 | 2013-3-3 22:11:57 | 显示全部楼层
2003*x*y超过长整数的上限2147483647...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行