OJ、ACM提交常见错误类型

一.Presentation Error(输出格式错误)

主要换行或者空格使用错误造成的 , 出现Presentation Error说明思路没问题,很多时候就是和后台样例有那么一点点点点差别,不是最标准的输出结果,自己稍微再修改一般可以对的吧。

常见PE错误:

  • 每行输出之后有空行
  • 每两行输出之间有空行
  • 一行中,每个输出数字(或字符串,等)之间有空格
  • 一行中,每个输出数字(或字符串,等)之后有空格

二.variable-sized object may not be initialized(编译错误)

原因,定义数组的时候使用变量来定义数组长度。

如下代码:

int a = 10;char b[a];                    //编译不报错//char b[a] = "jfkd";    //报错,使用变量定义长度时,不可在定义时同时进行初始化赋值,需要在之后进行赋值
printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));

如下代码则无问题:

int a = 10;char b[a];                    //编译不报错strcpy(b, "jfdljf");printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));

原因:在C中,使用变量来定义数组长度是,这个数组可以定义,却不能同时进行初始化赋值,需要在之后赋值。

三. runtime error(运行时错误)程序崩溃了

  1. 除以零
  2. 数组越界:int a[3]; a[10000000]=10;
  3. 指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;
  4. 使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free§; *p=10;
  5. 数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000];(一般较大的数组用全局变量不要用局部变量)

具体错误信息:

  1. Runtime Error(ARRAY_BOUNDS_EXCEEDED) // array bounds exceed 数组越界
  2. Runtime Error(DIVIDE_BY_ZERO) //divisor is nil 除零
  3. Runtime Error(ACCESS_VIOLATION) //illegal memory access 非法内存读取
  4. Runtime Error(STACK_OVERFLOW) //stack overflow 系统栈过载

四.process exited without return value 322212225725

  1. 栈溢出

    • 超出了定义的数组的空间
    • 递归或循环的出口判断失误导致无限循环
  2. 操作未未初始化的指针

    • 对一个未分配内存空间的指针进行赋值或者拷贝操作

五.如果输入的数都正常,存储在数组中的数也正常但是输出时就不正常(全部为零)

原因可能是数据类型不匹配,如将unsigned long long int变量用%d输出或作为 f ( int x)的参数

六.Segmentation fault(分段错误)

七.没有与参数列表匹配的 重载函数 “sort” 实例 – 参数类型为: (book *, book *, < unknown-type >)"

struct book
{int v,w;double y;int index;
} a[maxx];
bool  cmp(struct book a,struct  book b)//如果这个位置不加struct就会报这个错
{return a.y<b.y;
}
int  f(double x)
{double sum=0;for(int i=1;i<=n;i++){a[i].y=a[i].v-x*a[i].w;}sort(a+1,a+n+1,cmp);for(int i=n;i>=n-k+1;i--)sum+=a[i].y;if(sum>=0) return 1;return 0;
}

八.Time Limit Exceeded(运行超出时间限制)

  1. 没有循环终止条件 (加上终止条件)

  2. 函数调用超时 (改用循环而不是用递归)

    要用到一个n的阶乘时 ,调用了一个递归函数来求阶乘,运行测试正确,却出现了超时情况。然后换了一种做法,用一个for循环去求阶乘,结果就通过了。递归调用因为经常会调用自身很多次,所以时间的复杂度是指数级别的。

  3. 程序算法不够优化 (优化算法)

  4. 程序本身存在问题

  5. 没有判断输入结束

    • while(scanf("%d",&n)!=EOF))
    • while(~scanf("%d",&n))
    • while(gets(s)!=NULL)

九.Memory Limit Exceeded(内存超限)

空间复杂度太大

十.Output Limit Exceeded(输出超限)

OLE一般是某地方输出陷入了死循环,或者输出没有明确的终止(一般是由于输入没有明确终止)。

例如:

while(~scanf("%s",str)){}//本应这么写
while(scanf("%s",str)){}//如果怎么写就会导致输出超限(while一直不会终止)

十一.Compile Error(编译错误)

  1. 变量未定义就使用,或定义后使用位置超出了定义的作用域。

    说明:如b=25但程序并未在使用前定义好b的类型,还应注意变量作用域。

  2. 括号不匹配。

    说明:()、[]、{}一定要有始就得有终。

  3. 使用非法类型。

    说明:如__int64在GCC编译器下不识别,你却用它。

  4. 需少分号。

    说明:忘了语句以一个分号结束。

  5. 用函数未引头文件。

    说明:如printf函数在G++中未包含stdio.h文件。

  6. 包含非标准头文件。

    说明:如conio.h并非标准库中定义的头文件。

  7. 使用非标准库函数。

    说明:如itoa、strupr等并不是C标准库中的函数,不能使用。

  8. 有非法字符。

  9. 提交时所用的语言不对,比如c++的程序用c交了(c写的程序用c++提交可以过)

  10. 自定义函数未声明就使用

  11. 程序连编译都不能过,有各种错误

OJ、ACM提交常见错误类型相关推荐

  1. ACM 在线平台(OJ)评判结果 错误类型 及解决办法

    首先po张图,展现下平台的评判整体流程: 运行编译提醒 Waiting:  程序刚刚提交,正在等待OJ评测你的程序. Compiling    代码正在后台编译 Running     程序运行 Ju ...

  2. VJudge中提交种错误类型(部分属于转载)

    Accepted(AC) 程序编译正确,代码通过. Compilation Error(CE) 编译错误,主要是程序的语法错误. 常见的情况: a.头所建文件的扩展名错误,编译环境与语言不符: b.文 ...

  3. 软件本地化常见错误类型

    软件本地化测试--崔启亮博士 来源:本地化测试网   作者:崔启亮 概述 软件本地化测试的测试对象是本地化的软件,需要在本地化的操作系统上进行.虽然本地化的软件是基于源程序软件创建的,但二者的测试内容 ...

  4. android 关闭jack_Android7.0编译 jack常见错误类型及解决办法

    我使用的源码为SudaMod,3.1分支的源代码,第一次编译Android M以上的源码,就莫名其妙的遇到了几个关于JACK的坑,以下就列举几个常见的错误以及解决办法. 第一个错误: Out of m ...

  5. pandas常见错误类型TypeError: bad operand type for unary ~: 'float'

    TypeError: bad operand type for unary ~: 'float' pandas报这个错误是因为数据中含有空值即NA值.将其删除就可以了 代码如下 import pand ...

  6. mysql主从同步常见错误以及解决方法总结

    前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了 ...

  7. ACM常见错误提示及可能的解决办法

    Waiting:你的程序刚刚提交,正在等待OJ评测你的程序. Compiling:OJ正在编译你的程序. Accepted:OK!你的程序是正确的 . Wrong Answer:你的程序运行的结果和正 ...

  8. OJ(vjudge)错误提示类型

    OJ(vjudge)错误提示类型 这个寒假学校组织了ICMP程序设计冬令营,其中要用到的Oj提交部分,在提交的时候会遇到各种各样的错误,学习错误的提示是很重要的一部分. 什么是OJ Online Ju ...

  9. php中常见的错误类型有,JavaScript中常见的错误类型有哪些?(详细介绍)

    在JavaScript中,当发生错误时会生成描述错误类型的错误对象,此错误对象包含错误类型和编号等信息,这些信息可用于后续处理等,在本篇文章中将给大家介绍常见的错误类型以及如何处理这些错误. Java ...

最新文章

  1. ARM:钒和铁替代固氮酶的前世今生
  2. git 统计单个开发的代码量
  3. 《手把手教你学C语言》学习笔记(1)---C语言的特点
  4. 【学术相关】以前写过水论文怎么办?
  5. 话里话外:成功实施ERP要做到的几个关注点
  6. 多客服功能终于也向所有微信认证的订阅号开放了
  7. python 高阶函数之 reduce
  8. mysql存储引擎使用教程_mysql教程:如何写MySQL存储引擎
  9. 高级Linux程序设计第五章:进程间通信
  10. RTX5 | 消息队列01 - 创建消息队列
  11. 4K视频直播与点播系统的搭建与体验
  12. 加快战略转型进程:统帅电器挺进年轻用户市场
  13. DevCpp和VS2019安装armadillo库
  14. cad图纸服务器共享文件慢,DWG文件打开慢?3个技巧教你实现快速预览!
  15. 人民日报:今天,大学培养的人才合格吗?
  16. matlab神经网络工具箱的使用
  17. 【archlinux】安装系统
  18. 第 1 章 程序设计基本方法
  19. 硬盘分区MBR和GPT知识详解
  20. 字体引入,不生效问题解决

热门文章

  1. 技术人的折腾(二)-缺少的东西,你迟早要补起来
  2. 关于大数据和互联网的一点想法
  3. python open file mode description
  4. php 性能日志,php性能分析之php-fpm慢执行日志slow log用法浅析
  5. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
  6. S5PV210体系结构与接口12:I2C编程
  7. 计算机系统-理论-静态存储器/动态存储器
  8. Spring-读取properties文件
  9. java gui介绍_IntelliJ IDE 开发Java GUI 入门
  10. python3 django html 中文乱码_解决django后台管理界面添加中文内容乱码问题