2011-03-25 27 views
6

Aşağıdaki kodu SPOJ'da çalıştırırken çalışma zamanı hatası (NZEC) alıyorum. Herhangi biriniz, neler olup bittiğine dikkat ederseniz çok minnettar olurum.Basit kodda Çalışma Zamanı Hatası (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; 
} 
} 
+0

Eğer bir tane varsa, doğru cevabı işaretleyiniz :) –

cevap

2

bilmiyorum neyi java döner ana işlevi geçersizdir, ancak bu bu hata mesajının nedeni olmak varken. Spoj ayrıca programınızın dönüş değerini kontrol eder ve 0 (başarı/hata olmayan kod) bekler. Sanırım ana işlevinizi 0'a döndürmek bu hata iletisini düzeltir.

Sadece bir C programı ile aynı hatayı aldım ve bir dönüş 0 ekleyerek kabul edilen hatayı değiştirdim.

19

NZEC, Sıfır Noktasal Çıkış Kodu anlamına gelir. C kullanıcıları için, ana yönteminiz 0 dönüşüne sahip değilse oluşturulur; bildirimi. Java/C++ gibi diğer diller, bir istisna atarsa ​​bu hatayı oluşturabilir.

8

Java için, kod bir istisna atarken NZEC döndürülür. Spoj ile ilgili sorunlar için, genellikle girişteki son satır, test senaryoları bir tanımlayıcı dizgisiyle sonlandırılmazsa, bu istisnayla karşılaşır.

Bu gibi durumlarda, kodunuzu bir denemeye sarmak ve bir istisna söz konusu olduğunda geri dönmek faydalı olacaktır. Yakalanan istisna, girişin sonuna ulaştığınızı gösterir.

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

Bu, kodun son test durumunu çalıştıracak mı? – coderVishal

1

Bu hata programı ... beklenen çıkışı olmadığı çıkışı düzgün çalışması ister inanın ister inanmayın bu kod sadece ne soru çıkmıyor kuvvetli ihtimaldir olmadığı anlamına gelebilir >

NZEC (sıfır olmayan çıkış kodu) - - sonunda verilen bağlantıdan aktaran için ....

bunu sorar dilleri yorumlanır ile WA dan kazasında söylüyorum yardımcı olur; WA = Yanlış Cevap.

bu bağlantıyı The SPOJ System

7

bakın ben programlama yaparken java aynı mesajı vardı. Kaynak kodumu varsayılan pakete koymam gerektiğini (ya da paketi değiştirmemeliydim) ortaya çıktı. Umarım bu birisine yardım eder.

+0

Yani ikinci çözümün nedir? –

+0

@tAmirNaghizadeh Üzgünüm, sorumu anlamadım. Java dosyamın üstünde 'pack problems.tutorial 'satırı vardı. SPOJ bu hat yüzünden NZEC'yi bildirdi. Ben kaldırdığımda program gayet iyi değerlendirildi. –

-1

'EKO' problemi için bir cpp programında NZEC var. int main() ifadesinden hemen önce bir dizi beyanname yapıyordum. Bildirimi ana işleve kaydırdım ve çözüm kabul edildi.

Normalde main işlevinin dışında dizi bildirimi var ancak bu durumda dizi büyük (int array[100001]) idi. Yani dizilerinizi main içinde bildirebilirsiniz.

İlgili konular