2016-04-07 20 views
1

Tüm öğelerin toplamını bulacağınız bir 2B dizi oluşturmaya çalışın. İşimi kontrol etmek için bir sürücü kullanıyorum çünkü sayıları 2D dizisine girmem. Şimdiye kadar buna sahibim - ancak buna uymayacak. Neyi yanlış yapıyorum?2B dizisindeki tüm öğelerin toplamını bulma

public static double sum2d (double[ ][ ] array2d) 
{ 
    int sum = 0; 
    for (int row=0; row < array2d.length; row++) 
    { 
     for (int col=0; col < array2d[row].length; col++) 
     { 
      sum = sum + array2d [row][col]; 
     } 
    } 

    return sum; 
} 
+0

Derleme hatası nedir? – Gendarme

cevap

6

Yöntemin bir double dönmek ilan edilir ancak bir int olduğunu sum dönüyor.

Düzeltme: As @ samrap Burada belirtilenler, kodunuzda biçimlendirme hataları var. Bir açılış ayracı { eksik.

+2

Aynı zamanda açılış metodu desteğini kaçırmadığını varsayarsak, bu cevaptır. – samrap

+0

Thats it! Teşekkür ederim! – cargoboom

2

Sen

public static double sum2d (double[ ][ ] array2d) { <----- put that in. 

Ayrıca, double olarak sum ilan etmeye gerek yöntem imzası sonra bir ayraç eksik. Bir yöntem double döndürür ve sumint tip olması durumunda, return sum yapabileceği

double sum = 0; 

Not. Buradaki sorun, sum + array2d [row][col];'un double olmasıdır, bu nedenle bir yayın olmadan int'a atanamaz (ancak yapmak istediğiniz şey bu değildir).

+0

Çift d = 1,0 yazmak mümkün değil mi? int a = d; 'gibi döküm olmadan böyle? – Gendarme

+0

@Gendarme Hayır, bu derleme değil. Int int = = int (int) d olmalı, ancak kesirli kısmı kaldırır. –

0

Özetle, çift yerine toplam olarak bildirme

İlgili konular