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平台,不要怀疑他的判题质量,因为很多时候他都是正确的,一直都是你太自信了,不信邪,交了一次又一次,最后错了一次又一次。错多了,你就信了。(含着泪告诉你们)
最后想跟大家共勉一句话:做的越多,错的越多;错的越多,见的越多,也就会的越多。是不是这个理儿!奥里给!

发布了8 篇原创文章 · 获赞 8 · 访问量 1790

猜你喜欢

转载自blog.csdn.net/qq_45748475/article/details/104174280
今日推荐