常见问题及解答

 目前OJ支持的语言、编译器和编译选项分别为?
 目前支持的语言、编译器及编译选项如下:
语言 编译器 语言版本 编译命令行
C gcc 5.4.0 C99

gcc source_file.c -o exec_file -fno-asm -O2 -lm -DONLINE_JUDGE

C++ gcc 5.4.0 C++98/03

g++ source_file.cpp -o exec_file -fno-asm -O2 -lm -DONLINE_JUDGE

C++11 gcc 5.4.0 C++11

g++ source_file.cpp -o exec_file -fno-asm -O2 -std=c++11 -lm -DONLINE_JUDGE

C++14 gcc 6.3.0 C++14

g++ source_file.cpp -o exec_file -fno-asm -O2 -lm -DONLINE_JUDGE

Pascal FPC 3.0.0 Free Pascal dialect

fpc source_file.pas -O2 -Co -Cr -Ct -Ci

Java OpenJDK 1.8.0 Java 8

javac {src_path} -d {exe_path}

*Java 代码需使用 Main 作为主类名。
*C# 使用 Mono 平台的编译器与运行环境。
*除了以上语言,OJ还支持Python 2/3等。
 如何使用自己喜欢的语言去编一个程序(例题:100 A + B Problem)?
A
C
#include <stdio.h>
int main()
{
    int a, b;
    while(scanf("%d%d", &a, &b) != EOF)
    {
        printf("%d\n", a+b);
    }
    return 0;
}
C++
#include <iostream>
using namespace std;
int main()
{
    int a, b;
    while(cin >> a >> b)
    {
        cout << a+b << endl;
    }
    return 0;
}
Java
import java.util.Scanner;
public class Main {    //注:用Java提交时类名必须为"Main"
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }
    }
}
PS  补充说明~
  • 在g++中,主函数必须是int类型的。如果你使用void main,你会得到一个编译错误。
  • for (int i = 0; i < n; i++) 当在for语句中声明一个变量时,如果它在for语句块之外,变量i就会消失。
  • itoa 函数不是由ANSI定义的标准函数。
  • __int64不是ANSI标准。但是,如果你想使用64位整数,你可以使用long long。
 
 如何使用"long long"?
A
语言 C C++
输入 scanf("%lld", &x); cin >> x;
输出 printf("%lld", x); cout << x;
Q  提交后那个返回的结果是什么意思?
A
Waiting... 提交太多了,OJ无法在第一时间给所有提交以评判结果,后面提交的程序将暂时处于排队状态等待OJ的评判。不过这个过程一般不会很长。
Compiling... 您提交的代码正在被编译。
Running... 您的程序正在OJ上运行。
Judging... OJ正在检查您程序的输出是否正确。
Accepted 恭喜,程序已通过所有测试样例,解决了该题
Presentation Error 程序输出了正确的结果,但是输出的格式与要求的结果不一致,如多了/漏了“空格或换行”等
经过后台数据测试,程序输出的结果与后台答案不一致
Runtime Error

程序发生了运行时错误,可能的原因有:

  1. 访问数组时下标越界
  2. 整数除法除数为0
  3. 使用指针读取了不可读的内存或写了不可写的内存
  4. 函数调用栈的层次过多导致栈溢出,如无穷递归等
  5. 捕捉到违背处理的STL异常或自定义的异常
  6. ...
Time Limit Exceeded 程序运行时间超出了时间限制,请检查是否使用了低效率的算法,或者在程序中大量使用低效率的操作,如输入量太大,C++输入可能会导致超时(C语言输入效率更高)
Memory Limit Exceeded 程序使用的内存超出了内存限制,请检查是否存在内存泄露,或者使用了空间复杂度过高的算法,如数组开太大
Output Limit Exceeded 程序输出了过多的内容,如输出了大量与题目无关的信息
Compile Error 程序存在语法错误,编译不通过。也许您的程序在某些平台上可以正常编译,但可能由于使用了不规范语法,它无法在NOJ的平台上编译成功。请编写严格符合标准的代码
Restricted Function 您的程序进行了可能威胁到服务器安全的函数调用而被禁止。如运用文件流进行读文件,写文件,或者多次获取系统时间

Powered by NB231 | Current Style: .