acm错误提示

2023-06-05 版权声明 我要投稿

第1篇:acm错误提示

ACM错误提示

http://acm.nankai.edu.cn/user_message.php

F.A.Q.(Chinese) 我的程序为什么不能编译通过呢?

Online Judge 要求C/C++程序符合Ansi标准:

ANSI 标准和 Microsoft Visual C++ 存在一些不同的地方,比如:

0)main函数必须声明为int ,也就是 void main() 必须变成 int main()

VC同样可使用int main,只是程序最后需要 return 0;。

1)Microsoft Visual C++ 可以将 main 函数声明为 void,而 ANSI 中必须为 int main

2)请避免使用如下方式声明变量i

for (int i=0; i<10; i++)

{

...

}

您可以在For 语句之前,进行声明。

3)itoa 不是一个 ANSI 函数

4)stricmp 不是一个 ANSI 函数

5)sqrt() 的可能用法:sqrt(double (x)); //强制转换为double

6)OnlineJudge 中如何使用64位数?

定义64位数使用 long long 类型,输出格式串中使用 %lld 表示64位数。

虽然Free Pascal尽量设计得和Turbo Pascal接近,但是由于以下的两个原因,两者之间还是有一些区别的:

1.Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器;

2.Free Pascal是一个跨平台的编译器,而Turbo Pascal只在windows上使用。

如果你的代码是遵守ANSI Pascal的,那么代码从Turbo Pascal移植到Free Pascal是没有问题的。

下面是在Turbo Pascal上可以使用,但是在Free Pascal就不能使用的一些语言特性:

1.函数和过程在使用时,参数的类型必须和定义时完全一致。原因是在Free Pascal中添加了函数重载功能。

2.PROTECTED,PUBLIC,PUBLISHED,TRY,FINALLY,EXCEPT,RAISE成为了关键字,因此不能作为函数和过程的名字。

3.FAR,NEAR不再是关键字了。原因是Free Pascal是32位系统,不再需要这些关键字。

4.布尔表达式不一定要全部进行计算。只要最终结果已经能够确定,就不再计算其它还没有计算的部分了。

比如布尔表达式exp1 AND exp2 AND exp3,如果已知exp1的结果是false,

那么怎么表达式的结果肯定是false,exp2和exp3就不用进行计算了。

5.在Free Pascal中,集合中的元素都是4个字节长的。

6.表达式执行的顺序是不确定的。比如对于表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前执行。

7.如果用Rewrite打开文件,那么文件就只能被写入了。如果需要读取这个文件,要对文件执行Reset。

8.Free Pascal在程序结束之前一定要关闭输出文件,否则输出文件可能不能被正确的写入。

9.Free Pascal理论上可以使用4GB的内存,因此实际上几乎可以使用系统中的所有剩余内存(除非赛题中有内存限制)。

这是Free Pascal由于32位的编译器。但是对于Turbo Pascal来说,由于是16位的编译器,

因此不能定义大小超过64KB的数据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。

Online Judge 评判结果分别表示什么意思?

当你提交的程序被Online Judge评判完毕后,通常结果将立刻返回,或者你也可以在“Solutions”页看到评判结果。

详细测试多数据测试模式下,将显示出各个测试数据的测试结果,并且无论结果如何,都会用所有测试数据进行测试。

而一般多测试模式下,如果全对,则为Accepted;若其中某次数据出错,则评测中止,并返回此数据出错的信息。

常见的Online Judge将评判结果分为如下几类:

Accepted

程序的输出完全满足题意,通过了全部的测试数据的测试。

Wrong Answer

你的程序顺利地运行完毕并正常退出,但是输出的结果却是错误的。

注意:有的题包含多组测试数据,你的程序只要有一组数据是错误的,结果就是WA。

Presentation Error

你的程序输出的答案是正确的,但输出格式不对,比如多写了一些空格、换行。

请注意,大部分程序的输出,都要求最终输出一个换行。

不过,计算机程序是很难准确判断PE错误的,所以,很多PE错误都会被评判成WA。

Compilation Error

你的程序没有通过编译。你可以点击文字上的链接,查看详细的出错信息,对照此信息,可以找出出错原因。

一般来说,这种错误主要是由 Linux 环境下相关编译器与你使用的本地编译器之间的差异造成的

Judging

我们正在运行你的程序进行测试,请稍候。

Rejudging

我们更新了测试数据或者评判程序,并且正在进行重测,这个过程比较耗费资源,请稍候。 Time Limit Exceeded

你的程序运行的时间超过了该题规定的最大时间,你的程序被Online Judge强行终止。

注意:TE并不能说明你的程序的运行结果是对还是错,只能说明你的程序用了太多的时间。 Memory Limit Exceeded

你的程序运行时使用的内存,超过了该题规定的最大限制,或者你的程序申请内存失败,你的程序将被Online Judge强行终止。

注意:ML并不能说明你的程序的运行结果是对还是错,只能说明你的程序用了或者申请了太多的内存。

Function Limit Exceeded

你的程序运行时使用我们不允许使用的调用,将会得到此错误,诸如文件操作等相关函数。请特别注意:system("PAUSE"); 也会导致此错误。

Output Limit Exceeded

你的程序输出了太多的东西。

Online Judge规定提交的程序在运行的时候只能输出1024K字节的东西,如果你输出太多,将导致此错误。

我们保证所有的题目的标准输出都小于1024K字节。

Runtime Error

你的程序出现了“运行时错误”。

大部分情况下,NKOJ系统将返回给你一个Runtime Error的编号,由SIG或FPE开头,后面跟随一个整数。具体的解释请点击此处查看。

System Error

系统发生了错误。由于异常因素导致系统没有正常运作。我们尽力保证系统的稳定运行,但如您遇此情况,请联系管理员。

Online Judge 支持哪些编程语言?

到目前为止,本 Online Judge 已经支持 C、C++、PASCAL、JAVA 编程语言

OnlineJudge中,你的程序的输入和输出是相互独立的,因此,每当处理完一组测试数据,就应当按题目要求进行相应的输出操作。而不必将所有结果储存起来一起输出。

定义64位数使用 long long 类型,输出格式串中使用 %lld 表示64位数。

本系统内核部分作者:孙威、王岩,WEB部分作者:王岩。独立自主开发,保留一切权利。

南开大学信息学院、南开大学ACM协会 如果题目包含多组测试数据,我应该在何时输出我的结果?GCC 中如何使用64位数?关于本系统

Runtime Error 代号介绍

SIG (Signal,Linux系统信号) 部分:

(4)SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段.堆栈溢出时也有可能产生这个信号.

(6)SIGABRT 程序自己发现错误并调用abort时产生.

(6)SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.

(7)SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长的整数, 但其地址不是4的倍数.

(8)SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误.

(11)SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.造成这种错误的原因有很多,主要原因有三条:

一、数据下标越界,包括越上界和越下界。

二、堆栈溢出,比如递归层数过多。

三、不恰当的指针使用。

FPC (由Free Pascal 产生的错误代码):

由于OJ系统已经限制了程序的行为,所以以下部分代码并不会实际出现,此处列举仅仅为了文档相对完整。

1 Invalid function number 错误的功能代码

2 File not found 文件未找到

3 Path not found 目录未发现

4 Too many open files 打开太多的文件

5 File access denied 文件访问拒绝

6 Invalid file handle 错误的文件句柄

12 Invalid file access code 错误的文件访问代码

15 Invalid drive number 错误的驱动器数字

16 Cannot remove current directory 不能移动当前目录

17 Cannot rename across drives 不能跨越驱动器更改文件名

100 Disk read error 磁盘读错误

101 Disk write error 磁盘写错误

102 File not assigned 文件未曾建立关联

103 File not open 文件未打开

104 File not open for input 文件不能打开读数据

105 File not open for output 文件不能打开写数据

106Invalid numeric format 错误的数字格式

从标准输入(Text文件)中预期得到的数字格式不对.

150 Disk is write-protected

151 Bad drive request struct length

152 Drive not ready

154 CRC error in data

156 Disk seek error

157 Unknown media type

158 Sector Not Found

159 Printer out of paper

160 Device write fault

161 Device read fault

162 Hardware failure

200Division by zero

被除数为0.

201Range check error

如果你编译你的程序时设置了方位检查,原因有可能是:

数组访问超过了声明的范围.

试图给一个变量赋值超过其范围(例如枚举类型).

202Stack overflow error

栈溢出

栈增长超过了最大值 (in which case the size of local variables should be reduced to avoid this error), or the stack has become corrupt. 只有当栈检查时才出现该错误.

203Heap overflow error

堆溢出

堆增长超过了上界. This is caused when trying to allocate memory exlicitly with New, GetMem or ReallocMem, or when a class or object instance is created and no memory is left. Please note that, by default, Free Pascal provides a growing heap, i.e. the heap will try to allocate more memory if needed. However, if the heap has reached the maximum size allowed by the operating system or hardware, then you will get this error.

204Invalid pointer operation

错误的指针操作

使用 Dispose or Freemem 时使用错误的指针 (特别的, Nil)

205Floating point overflow

浮点数上溢

你试图使用或产生一个太大实数.

206Floating point underflow

你试图使用或产生一个太小实数.

207Invalid floating point operation

错误的浮点数操作

可能是你开平方根或者对数时使用负数.

210Object not initialized

对象未初始化

When compiled with range checking on, a program will report this error if you call a virtual method without having called istr constructor.

211 Call to abstract method 212 Stream registration error 213 Collection index out of range 214 Collection overflow error

215Arithmetic overflow error 数字超出范围 例如3000000000超出长整形范围

216 General Protection fault

217 Unhandled exception occurred 219 Invalid typecast

227 Assertion failed error

第2篇:ACM错误汇总

出错种类与问题解决

结果如果不是Accepted,那么我也恭喜你。你和OJ题目搏斗的生涯从此开始了! 其实也不用灰心丧气,程序写出来哪有不出错的,让我们来一点一点分析,修改程序让它通过吧!

常见错误与原因分析

Compile Error

编译错,就是程序写出来编译报错。程序还没调通就提交?如果在本地通过了调试还出现上述问题,可以注意一下是不是犯了以下错误。

贴程序的时候没贴全——少个分号什么的到了平台上自然会告诉你编译错 语言选择错误——C语言的代码用JAVA的编译器编译无论如何也不能对…… Wrong Answer

常见错误之一,程序输出了错误的结果。

首先查一下自己的算法是否正确,之后再检查一下是不是有什么边界情况没有考虑到吧。有些程序会有很恶心的情况的,比如说0长度数组之类的。边界情况考虑的越全面这类错误可能发生的情况越小。

Runtime Error

常见错误之二,程序出现了运行时段错误。

最可能由于越界访问数据或者空指针等潜在问题导致。编程时注意程序的规范性可以有效的规避此类错误。

Time Limit Exceeded

程序执行超时。可能你的算法不够优。尽量减少循环的重数吧!

Memory Limit Exceed

占用内存超过限制。

程序中申请了过多的空间,有可能用了大数组吧?试着少申请一些空间或者使用动态内存申请并且及时释放这些无用的空间吧!

Output Limit Exceed

输出了过多的东西,应该好好检查代码中输入输出的部分,看看是不是陷入的死循环。

Presentation Error

初学者最经常犯的错误,输出格式错误。

好好观察Sample output,看看是不是多打了个/n什么的。我当时被这种错误郁闷了好久……

第3篇:ACM中WA方面的错误总结

1、 Int遇到过的问题 简介:

int是我们最常用的类型之一。如果输入数据是整形,一般都直接用该类型来存放输入数据。

错误经历:

自己在作Equiptment Box时,因为输入数据长、宽均是小于50000的整数,因此就使用int来作输入。这本身没有问题,但在求其斜边长时,使用的是sqrt(x * x + y * y),表面看是没有问题,但结果一直是Wrong Answer。 后来将这一行改为pow( (pow(x, 2) + pow( y,3 ) ) , 0.5),就Accept了! 错误原因:

后来经johnbill和hewei的分析,x,y本身没有问题,不会越界,但使用sqrt(x*x +y*y)时,里面的x*x 和 y*y则会超出int范围,造成溢出。而pow会将参数自动转换为double,就不会出错。

避免失误的办法:

(1)以后均使用pow进行运算。(习惯) (2)运算时,注意做强行转换。(比较麻烦)

(3)不管输入给的类型,直接用double来存储,就不会溢出了。这种方法表面看没有问题,但直到这次比赛,才发现了一个很严重的问题!

2、 double遇到过的问题 简介:

是我们在解题时,和int一起是最常用的类型。 错误经历:

因为 double上限可达1.7e308 。而一般题目(非大数运算要求)均不可能超过其限,发生溢出,所以之后我就在做题时,凡是遇到结果有些大时,均用double类型来保存,来避免溢出。看起来,这样比较方便,因为我们在本机上是用VC++,而OnlineJudge是gcc,它们支持的长整形类型不同,一个是__int64, 而一个是long long;处理格式也不同,I 64u 和 lld。而在这种情况下,“真正”的可以用double的话,那就可以将其统一起来。但是……昨天比赛C题时,自己也是这么递推和用double保存,但一直Wrong Answer。和递归能计算出(太大的数据很耗时)的数据相比,都是正确的,不知原因何在。比赛结束后,和别人结果对照了一下,把double改成unsigned long long 就Accept了。 错译原因:

这是因为:double类型的精度只有15位!!!它的上限可以很大,但只能保证15位的精度!换句话说,只能保证15位是正确的。在数据( 50,50)以后,结果都在20位以上,前面的位数是正确的,但后面的几位就会出现问题了! 解决方法:

(1) 定义头文件,在本机上用__int64,提交时用long long (2) 本机上使用VAC编译( J ) (奇难用!)

(3) 反正绝对不能使用double来计数,尤其比较大的数,但可以利用它来测试最大数据的范围大小,这样可以反过来帮助我们决定用什么类型来保存。

3、 float遇到过的问题

我还记得当时Hunter做area的时候,各方面都作了考虑,但一直是Wrong Answer。后来只是把存储坐标的float类型改为double,就过了。 原因:

应该是float的精度不够(具体嘛…..大家re),但题目只要求3位小数也有问题……。所以,以后大家要使用浮点数计算时,直接用double,不要考虑使用float。一般内存是不会有问题的。

4、 4舍5入的问题:

在做Lifting the Stone时,题上要求保留到小数点两位,第三位作四舍五入,自己直接用%.02来打,以为自动会四舍五入。但一直没过。加上处理之后就过了……. 原因:

小数点后第三位为5时,会随机的作进位处理。 解决办法:

如果题上要求了四舍五入,一定要记得进行处理:x = floor(x*100 + 0.5)/100,

5、 为5时,后一位奇数进位,偶数不进位: 这个JohnBIll讲过,一般不会有这种“浪费青春的题…..”。 解决办法:

除了相当的灵活,多试,还需要运气了……

第4篇:打开Word提示发送错误报告

打开Word提示发送错误报告,提示进入安全模式

的解决方法

【问题】:突然出现word打不开,显示上面的对话框,在点击了“不发送”按钮后将关闭。再次运行 Word,将询问是否以安全模式启动 Word。在此如果选择“是”,Word 将进入“安全模式”。在这种模式下,Word将仅显示空白窗口,需要再手动打开文档方可显示。如果选择“否”,则Word又将弹出错对话框,陷入死循环。但是,除 Word 外其他 Office 组件均可正常运行。 【症状】: 1.word强行关闭,提示发送错误报告,然后要求重启word。 2.重启word后说遇到严重错误,需要进入安全模式。选“否”后又重新会回到这个状态,所以只有选“是”这一个选择。 3.进入word的安全模式,提示说有功能被禁用。 4.无论重启多少次,无法正常启动,只能进入安全模式。 5.重装、修复office2003都无济于事,除非重装系统。卸载office2003后再装office2000、office XP(office 2002),提示有严重错误,word无法启动。 【原因】: Normal.dot这个模板文件被损坏。可能原因有:非正常结束word程序,其时有文档正在编辑或打开;编写了宏并保存到Normal.dot中;其他未知原因。 解决方法一: 1.进入C:Documents and SettingsUserApplication DataMicrosoftTemplates。其中“User”是当前windows登录的用户名。注意这需要从Explorer(即“我的电脑”或“资源管理器”)的菜单栏中找工具→文件夹选项→查看,选中“显示所有文件和文件夹”以查看隐藏文件和隐藏文件夹(Application Data是隐藏文件夹)。 2.找到Normal.dot,将其使用Shift+Delete进行彻底删除。 3.启动word,一切恢复正常。 说明: Normal.dot是word的模板文件,word在启动过程中会检查这个文件的状态是否正常,如果不正常,启动会失败。如果其他文件正常,这个文件被删除,word会自动重新建立这个文件,恢复到初始安装状态,所以可以放心删除。 解决方法二: 你直接在电脑里查找“Templates"文件就好了,然后找到后就进入这个文件夹 然后会出现几个名为“Normal” 还有一个“~Normal”文件,我都把它们删掉 然后一切恢复正常! C:Documents and SettingsAdministratorApplication DataMicrosoftTemplates”目录,删除其中的“Normal.dot”公用模板文件,再重新启动Word即可。 如果在C盘中找不到NORMAL,可以这样操作:进入WORD安全模式,打开任一WORD文档。选<工具>/(模板和加载项),按 “文档模板” 后面的“选用”。把图框中的文件NORMAL用右键删除即可。(这种方法是最便捷高效的!) 删除后如果重启word不行,重启电脑试试。 你用的是精简版的吧?建议还是装原版吧! 解决方法三(强烈推荐,理由:简单、高效): 首先找到下面这个文件夹: C:Documents and SettingsAdministratorApplication DataMicrosoftTemplates 会看到“Normal.dot” 这个文件,这是公用模板文件,应该是损坏了,直接将其删除,故障就排除了。 如果找不到这个文件夹,可将 C:Documents and SettingsAdministratorApplication DataMicrosoftTemplates 复制粘贴到地址栏即可找到 normal.dot 这个文件,直接将其删除,关闭WORD文档,重新打开,故障排除。 如果还是不行的话,把office的安装文件删干净,再重新装一次就可以了

第5篇:Excel 2003出现发送错误报告的提示:

如果是Excel 2003出现发送错误报告的提示,可以试图通过以下方式解决:打开C:Documents and Settings用户名Application DataMicrosoftExcel文件夹,删除里面的模板文件,保留XLSTART文件夹,今天在工作上有遇到此问题,按此方法处理后暂未出现异常。

第6篇:安装Jade5.0时提示“339”错误的解决办法

安装Jade5.0时出现“run-time error 339 component MSCOMCT2.OCXnot correctly registered:file is missing or invalid的提示”。在网上搜索了半天找到各种解决办法,但是都没安装上,以下给出自己的经验。

下载或复制提示里缺失的文件分别到system32和SysWOW64。点击开始→输入cmd→右键 管理员权限运行→输入regsvr32 MSCOMCT2.OCX 回车。到SysWOW64文件夹里找到cmd应用程序 右键 管理员权限运行→输入regsvr32 MSCOMCT2.OCX 回车,再注册一次就OK了!打开Jade5.0又会提示缺失其它文件,重复上面的方法直到解决全部错误提示。

上一篇:业务工作计划第一学期下一篇:工商银行开业致辞