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

在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; } } 

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

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

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

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

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

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

我只是在C程序中遇到了同样的错误,并且添加一个返回0将错误更改为接受。

这个错误也可能意味着程序无法正常工作,即输出不是预期的输出……不管你信不信,这很可能是你的代码没有按照问题要求做的….

引用最后给出的链接 – >

NZEC(非零退出代码) – 帮助讲述WA与解释语言的崩溃; WA =错误的答案。

请看这个链接SPOJ系统

我在针对问题’EKO’的cpp计划上获得了NZEC。 我正在int main()语句之前做一个数组声明。 我在主函数中移动了声明,解决方案被接受了。

我通常在main函数之外有数组声明,但在这种情况下,数组是一个很大的数组( int array[100001] )。 所以可能会在main声明你的数组。