2016-08-07 1 views
-1

Je suis en train de concevoir un programme qui crée un tableau, puis le remplit dans une méthode, calcule la moyenne dans une autre méthode, puis affiche son contenu et la moyenne dans la méthode principale. Cependant, j'obtiens une erreur de type incompatible en essayant de passer le tableau à la méthode calAverage et je ne comprends pas pourquoi.Vous essayez de transmettre un tableau à une méthode mais génère une erreur de type incompatible?

public class week3d 
{ 
    public static void main (String [] args) 
    { 
    int [] list = new int [20]; 
    list = fillArray(); 
    int average = calAverage(list); // this is where the error occurs 


    System.out.println("The average of this list is "+average/20); 
} 

public static int [] fillArray() 
    { 
    int [] a = new int[20]; 
    for (int i =0;i <20;i++) 
    { 
    a[i] = i*10; 
    System.out.println(a[i]); 
    }  
    return a; 
} 

public static int [] calAverage(int[] a) 
{ 
    int average = 0; 
    for (int i =0;i <20;i++) 
    { 
    average += a[i]; 
    } 
    return average/20; 
    } 
} 
+0

était ma réponse utile? – Kaushal28

+0

Aussi: pas besoin de 'int [] list = new int [20]; list = fillArray(); '. Faites 'int [] list = fillArray();' – c0der

+1

Up a voté votre question. Je me demande pourquoi les gens votent pour de nouveaux utilisateurs (sans explication), décourageant ainsi les nouveaux utilisateurs. – c0der

Répondre

1

Le programme affiche le message: Incompatible types: int[] cannot be converted to int. Cela est dû au fait que le type de retour de la méthode calAverage() est int[], c'est-à-dire qu'il renvoie un tableau d'entiers. Mais vous voulez qu'il renvoie une valeur int comme variable average dans calAverage(), dont la valeur est renvoyée, et la variable dans la méthode principale qui obtient sa valeur affectée comme la valeur retournée par calAverage() sont de type int. Ainsi, changez le type de retour de calAverage() de int[] à int.

public static int calAverage(int[] a) 
{ 
    int average = 0; 
    for (int i =0;i <20;i++) 
    { 
     average += a[i]; 
    } 
    return average/20; 

} 
+0

Ahhh bien sûr stupide moi, merci pour l'aide –

+0

@ C.Dodds S'il vous plaît maek une réponse comme la bonne si vous avez trouvé une solution à votre problème. – progyammer

+1

merci pour edit @progy_rock – Kaushal28