2011-03-25 12 views
6

Tengo un error en el tiempo de ejecución (NZEC) cuando ejecuto el siguiente código en SPOJ. Estaría muy agradecido si alguno de ustedes amablemente señala lo que está pasando.Runtime Error (NZEC) en el código simple

//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; 
} 
} 
+0

Marque la respuesta correcta si tiene una :) :) –

Respuesta

2

No sé lo que vuelve java cuando la función principal es nula, pero esto puede ser la razón de este mensaje de error. Spoj también verifica el valor de retorno de su programa y espera 0 (código de éxito/no error). Supongo que cambiar su función principal para devolver 0 corregirá este mensaje de error.

Acabo de tener este mismo error con un programa C, y al agregar una devolución 0 cambié el error para aceptarlo.

19

NZEC significa Código de salida cero cero. Para usuarios de C, esto se generará si su método principal no tiene return 0; declaración. Otros lenguajes como Java/C++ podrían generar este error si lanzan una excepción.

8

Para Java, se devuelve NZEC cuando el código arroja una excepción. Para problemas en Spoj, etc. a menudo la última línea en la entrada causa esta excepción si los casos de prueba no son terminados por una cadena identificadora.

Para estos casos, un truco útil es envolver su código en un try - catch y simplemente devolver si hay una excepción. La excepción detectada indica que ha llegado al final de la entrada.

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

Me pregunto si esto ejecutará el último caso de prueba del código? – coderVishal

1

Este error también puede significar que el programa no funciona correctamente que es la salida no es la salida esperada ... aunque no lo crean esto es una gran posibilidad de que su código es simplemente no hacer lo que la pregunta le pide que ....

Citando el enlace que figura al final ->

CEPC (código distinto de cero salida) - ayuda a contar accidente de WA con lenguajes interpretados; WA = Respuesta incorrecta.

consulte este enlace The SPOJ System

7

que tenía el mismo mensaje durante la programación en Java. Resultó que debería haber puesto mi código fuente en el paquete predeterminado (o no cambiar el paquete en absoluto). Espero que esto ayude a alguien.

+0

¿cuál es su segunda solución? –

+0

@tAmirNaghizadeh Lo siento, no entiendo la pregunta. Tenía la línea 'package problems.tutorial' en la parte superior de mi archivo java. SPOJ informó NZEC debido a esa línea. Cuando lo eliminé, el programa se evaluó muy bien. –

-1

Tengo NZEC en un programa cpp para el problema 'EKO'. Estaba haciendo una declaración de matriz justo antes de la declaración int main(). Cambié la declaración dentro de la función principal y la solución fue aceptada.

Normalmente tengo la declaración de matriz fuera de la función main, pero en este caso la matriz era grande (int array[100001]). Por lo tanto, puede declarar sus matrices en main.