《2023年ACM错误提示.docx》由会员分享,可在线阅读,更多相关《2023年ACM错误提示.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年ACM错误提示 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
2、 . 您可以在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接近,但是由于以下的两个原因,两者之间还是有一些区别的: 1Free Pascal是一个32位的编译器,而Turbo Pascal只是16位编译器; 2Free Pascal是一个
3、跨平台的编译器,而Turbo Pascal只在windows上使用。 如果你的代码是遵守ANSI Pascal的,那么代码从Turbo Pascal移植到Free Pascal是没有问题的。 下面是在Turbo Pascal上可以使用,但是在Free Pascal就不能使用的一些语言特性: 1函数和过程在使用时,参数的类型必须和定义时完全一致。原因是在Free Pascal中添加了函数重载功能。 2PROTECTED,PUBLIC,PUBLISHED,TRY,FINALLY,EXCEPT,RAISE成为了关键字,因此不能作为函数和过程的名字。 3FAR,NEAR不再是关键字了。原因是Free
4、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。 8F
5、ree Pascal在程序结束之前一定要关闭输出文件,否则输出文件可能不能被正确的写入。 9Free Pascal理论上可以使用4GB的内存,因此实际上几乎可以使用系统中的所有剩余内存(除非赛题中有内存限制)。 这是Free Pascal由于32位的编译器。但是对于Turbo Pascal来说,由于是16位的编译器, 因此不能定义大小超过64KB的数据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。 Online Judge 评判结果分别表示什么意思? 当你提交的程序被Online Judge评判完毕后,通常结果将立刻返回,或者你也可以在“Solutions”页看到评判结果。
6、 详细测试多数据测试模式下,将显示出各个测试数据的测试结果,并且无论结果如何,都会用所有测试数据进行测试。 而一般多测试模式下,如果全对,则为Accepted;若其中某次数据出错,则评测中止,并返回此数据出错的信息。 常见的Online Judge将评判结果分为如下几类: Accepted 程序的输出完全满足题意,通过了全部的测试数据的测试。 Wrong Answer 你的程序顺利地运行完毕并正常退出,但是输出的结果却是错误的。 注意:有的题包含多组测试数据,你的程序只要有一组数据是错误的,结果就是WA。 Presentation Error 你的程序输出的答案是正确的,但输出格式不对,比如多
7、写了一些空格、换行。 请注意,大部分程序的输出,都要求最终输出一个换行。 不过,计算机程序是很难准确判断PE错误的,所以,很多PE错误都会被评判成WA。 Compilation Error 你的程序没有通过编译。你可以点击文字上的链接,查看详细的出错信息,对照此信息,可以找出出错原因。 一般来说,这种错误主要是由 Linux 环境下相关编译器与你使用的本地编译器之间的差异造成的 Judging 我们正在运行你的程序进行测试,请稍候。 Rejudging 我们更新了测试数据或者评判程序,并且正在进行重测,这个过程比较耗费资源,请稍候。 Time Limit Exceeded 你的程序运行的时间超
8、过了该题规定的最大时间,你的程序被Online Judge强行终止。 注意:TE并不能说明你的程序的运行结果是对还是错,只能说明你的程序用了太多的时间。 Memory Limit Exceeded 你的程序运行时使用的内存,超过了该题规定的最大限制,或者你的程序申请内存失败,你的程序将被Online Judge强行终止。 注意:ML并不能说明你的程序的运行结果是对还是错,只能说明你的程序用了或者申请了太多的内存。 Function Limit Exceeded 你的程序运行时使用我们不允许使用的调用,将会得到此错误,诸如文件操作等相关函数。请特别注意:system(PAUSE); 也会导致此错
9、误。 Output Limit Exceeded 你的程序输出了太多的东西。 Online Judge规定提交的程序在运行的时候只能输出1024K字节的东西,如果你输出太多,将导致此错误。 我们保证所有的题目的标准输出都小于1024K字节。 Runtime Error 你的程序出现了“运行时错误”。 大部分情况下,NKOJ系统将返回给你一个Runtime Error的编号,由SIG或FPE开头,后面跟随一个整数。具体的解释请点击此处查看。 System Error 系统发生了错误。由于异常因素导致系统没有正常运作。我们尽力保证系统的稳定运行,但如您遇此情况,请联系管理员。 Online Jud
10、ge 支持哪些编程语言? 到目前为止,本 Online Judge 已经支持 C、C+、PASCAL、JAVA 编程语言 OnlineJudge中,你的程序的输入和输出是相互独立的,因此,每当处理完一组测试数据,就应当按题目要求进行相应的输出操作。而不必将所有结果储存起来一起输出。 定义64位数使用 long long 类型,输出格式串中使用 %lld 表示64位数。 本系统内核部分作者:孙威、王岩,WEB部分作者:王岩。独立自主开发,保留一切权利。 南开大学信息学院、南开大学ACM协会 如果题目包含多组测试数据,我应该在何时输出我的结果?GCC 中如何使用64位数?关于本系统 Runtime
11、 Error 代号介绍 SIG (Signal,Linux系统信号) 部分: (4)SIGILL 执行了非法指令.通常是因为可执行文件本身出现错误, 或者试图执行数据段.堆栈溢出时也有可能产生这个信号. (6)SIGABRT 程序自己发现错误并调用abort时产生. (6)SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样. (7)SIGBUS 非法地址, 包括内存地址对齐(alignment)出错.eg: 访问一个四个字长的整数, 但其地址不是4的倍数. (8)SIGFPE 在发生致命的算术运算错误时发出.不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有
12、的算术的错误. (11)SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.造成这种错误的原因有很多,主要原因有三条: 一、数据下标越界,包括越上界和越下界。 二、堆栈溢出,比如递归层数过多。 三、不恰当的指针使用。 FPC (由Free Pascal 产生的错误代码): 由于OJ系统已经限制了程序的行为,所以以下部分代码并不会实际出现,此处列举仅仅为了文档相对完整。 1 Invalid function number 错误的功能代码 2 File not found 文件未找到 3 Path not found 目录未发现 4 Too many open fil
13、es 打开太多的文件 5 File acce denied 文件访问拒绝 6 Invalid file handle 错误的文件句柄 12 Invalid file acce code 错误的文件访问代码 15 Invalid drive number 错误的驱动器数字 16 Cannot remove current directory 不能移动当前目录 17 Cannot rename acro drives 不能跨越驱动器更改文件名 100 Disk read error 磁盘读错误 101 Disk write error 磁盘写错误 102 File not aigned 文件未曾建
14、立关联 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 Unkn
15、own 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
16、 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 cla or object instance is created and no memory is left.Ple
17、ase 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 Free
18、mem 时使用错误的指针 (特别的, 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 v
19、irtual 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 Aertion failed error ACM错误提示 ACM错误汇总 ACM中WA方面的错误总结 用友常见错误提示 ansys错误提示汇总 HP电脑无法启动,错误提示912错误 ACM 电脑启动错误提示信息解释 ACM学习感想 ACM赛后总结
限制150内