2016-03-21 18 views
0

int sorun ne olduğunu açıklamak için benim yöntemler içinde bildirilen ne ilan edilmek gerektiğini neden bilmiyorum neden benim çifte içinde neden bana bu hata verecekolası kayıplı dönüşüm aşağıdaki başlıkları içeren bir dizi ortalamasını döndürür iki yüklenmiş yöntemleri içeren bir program yazın

import java.util.Scanner; 

public class Lab7A { 

public static void Main(String[] args) { 


    Scanner sc = new Scanner(System.in); 



    System.out.print("Enter 10 Integer values: "); 
    int list[] = new int[10]; 
    for (int i = 0; i < list.length; i++) { 
     list[i] = sc.nextInt(); 
    } 

    double avg1 = average(list); 
    System.out.println("Average of First Array: " + avg1); 
    System.out.println(); 

    System.out.print("Enter Ten Double Values: "); 
    double list2[] = new double[10]; 
    for (double i = 0; i < list2.length; i++) { 
     list2[i] = sc.nextDouble(); 
    } 

    double avg2 = average(list2); 
    System.out.println("Average of Second Array: " + avg2); 
    System.out.println(); 
    } 
    public static int average(int[] list) { 
    double average = 0; 
    double total = 0; 

    for (int i = 0; i < list.length; i++) { 
     total = total + list[i]; 
    } 
    average = total/list.length; 
    return average; 

} 

public static double average(double[] list2) { 
    double average = 0; 
    double total = 0; 

    for (int i = 0; i < list2.length; i++) { 
     total = total + list2[i]; 
    } 
    average = total/list2.length; 
    return average; 
    } 

} 
+0

dizi konumları tamsayıdır, ancak 'd' 'list2 [d]' bir int değil. Hata daha açık olabilir, ancak diziye koyduğunuz şeyle ilgili değil, bir dizi dizi dizini kullanmanızla ilgili. –

+0

Neden "ortalama" ve "toplam" olarak adlandırılan yerel değişkenleri main() olarak bildiriyorsunuz ve bunları hiç kullanmıyorsunuz? Ve sonra "ortalama" adlı yöntemleri de çağırırsınız. – FredK

+0

Kodumu – mvanderk10

cevap

1

Sizin average(double[]) yönteminiz, double bir dizi dizini olarak kullanılmaya çalışıyor, ancak Java yalnızca dizinin bir dizini olarak int s izin veriyor. Bu, "çiftden int'ye olası kayıplı dönüşüm" kaynağının kaynağıdır.

Diğer her şey double olmalıdır, ancak bu hatayı kaldırmak içindizininizi int olarak bildirin. Ayrıca, bu yöntemin for döngüsünde d < 5 yerine d < list2.length olması gerekir. Ayrıca, int değerlerinin ortalaması int olmalıdır. Sizin average(int[]) yönteminde, bir double döndürmek ve olmak için average bildirmek için bildirin. avg1 değişkeninin main numaralı telefonunda da double olması gerekir.

+0

güncelledim, burada d yerine int koymalıyım? – mvanderk10

+0

'int d = 0;', 'd' = 0;' yerine 'for' döngüsünde. – rgettman

+0

için (çift d = 0; d <5; d ++) { toplam = total + list2 [int]; Bana bir '.class' beklenen hata veriyor – mvanderk10

İlgili konular