oj上常见错误及错误原因总结!
·
很显然,就是这几种情况(错多了,我比谁都清楚,害!)
1.正确
啥也别说了,请再接再厉!
2.格式错误
答案基本正确,但格式不对! 没有换行,没有空格,多输出了东西都是有可能的。
3.答案错误
千万不要觉得你在你的 “ 自家 ” 编译器上运行的很好,而且试了一下示例全部和oj上一样你就对了,其实你想多了。当然出现这种情况不要怕,记住,想极端,找出你的程序的漏洞,就行了。
4.时间超限
一般时间超限有这几种情况,第一,是死循环。for,while等等没有循环结束的条件,导致死循环 ; 第二,代码里有太多没有必要的循环。每一个循坏都需要一段时间,循环过多,运行时间会加长。第三,你用的方法太复杂。每个题在提交时都会显示运行了多少时间,如果方法复杂,就会超出系统给出的时间,但这并不代表你的代码是错的。
5.输出超限
emm,举个例子吧!
同样的zzulioj2426
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
int t;
int a,b,c;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
int s=a;
a=c;
c=s;
}
if(b>c)
{
int m=b;
b=c;
c=m;
}
if(c-a<b)
printf("1\n");
else
printf("0\n");
}
return 0;
}
**/* 这是输出超限的代码 */**
```c
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
int t;
int a,b,c;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a&&a-b<c&&b-a<c&&a-c<b&&c-a<b&&b-c<a&&c-b<a)
printf("1\n");
else
printf("0\n");
}
return 0;
}
**/* 这是正确的代码 */**
结合这两个代码细细品!
6.运行错误
运行时错误,一般是程序在运行时执行了非法的操作造成的。如数组越界,分母为零,非法内存访问,堆栈溢出(下一张介绍)
`7.编译错误
这个就是语法的错误了,有很多哟!出现这个问题时,编译器一般会出现一行提示,复制搜索一下看看到底是怎么回事,认真找出改正即可。``
最重要的一点,一定要相信oj平台,不要怀疑他的判题质量,因为很多时候他都是正确的,一直都是你太自信了,不信邪,交了一次又一次,最后错了一次又一次。错多了,你就信了。(含着泪告诉你们)
最后想跟大家共勉一句话:做的越多,错的越多;错的越多,见的越多,也就会的越多。是不是这个理儿!奥里给!
更多推荐
已为社区贡献5条内容
所有评论(0)