简单代码中的运行时错误(NZEC)

Cod*_*ter 6 c# runtime

在SPOJ上运行以下代码时,我收到运行时错误(NZEC).如果你们中的任何人愿意指出发生了什么,我将非常感激.

//0<=A<=B<=10^18, 1<=N<=10^18
using System;
class any
{
static void Main()
 {
    long t = long.Parse(Console.ReadLine());
    ulong a, b, n;

    for(long k = 0; k < t; k++)
     {
        string[]s = Console.ReadLine().Split(' ');
        a = ulong.Parse(s[0]);
        b = ulong.Parse(s[1]);
        n = ulong.Parse(s[2]);
        Console.WriteLine(diviEntre2(a, b, n));
     }
 }
static ulong diviEntre2(ulong f, ulong c, ulong n)
{
   ulong k, s, m;

    if (f == c && c % n == 0 && f != 0) k = c/n;

    else
     {
      s = f/n;
      m = c/n;

      k = m - s;
     }

  return k;
}
}
Run Code Online (Sandbox Code Playgroud)

Gur*_*ngh 18

NZEC代表非零退出代码.对于C用户,如果主方法没有返回0,则会生成此用户; 声明.Java/C++等其他语言如果抛出异常就会生成此错误.


Sag*_*ari 8

对于Java,当代码抛出异常时返回NZEC.对于Spoj等上的问题,如果测试用例没有被标识符字符串终止,则输入中的最后一行通常会导致此异常.

对于这种情况,一个有用的hack是将你的代码包装在try-catch中,如果有异常则简单地返回.捕获的异常表示您已到达输入结束.

public static void main(String[] args) {
    temp program = new temp();
    try{
    program.begin();
    } catch(Exception e){
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)


Sla*_*mac 7

在java中编程时我有相同的消息.事实证明我应该将我的源代码放在默认包中(或根本不更改包).我希望这可以帮助别人.


dba*_*osa 2

我不知道当 main 函数为 void 时 java 返回什么,但这可能是此错误消息的原因。Spoj 还会检查程序的返回值,它期望 0(成功/非错误代码)。我想将 main 函数更改为 return 0 将修复此错误消息。

我刚刚在 C 程序中遇到了同样的错误,并且添加 return 0 将错误更改为接受。