2014-09-02 4 views
1

Si vous tentez d'entrer une liste de doublons dans la console, alors lorsque l'utilisateur termine l'entrée de l'arborescence avec ctrl-z ou d, recherchez la moyenne de la liste des numéros entrés en utilisant double.JAVA: Recherche de la moyenne d'une liste à double matrice

Je reçois beaucoup d'erreurs et je ne sais pas pourquoi! toute aide est appréciée comme je suis un débutant java

public static void main(String[] args) { 
    ArrayList<Double> numbers = new ArrayList<Double>(); 

    Scanner in = new Scanner(System.in); 

    while (in.hasNextDouble()) 
    { 
     Double input = in.nextDouble(); 
     numbers.add(input); 
    } 

    in.close(); 

    for (Double element : numbers) { 
     Double sum += element; 
     System.out.println(sum/numbers.size()); 
    } 
} 
+3

Quelles sont exactement les erreurs que vous obtenez? – resueman

+0

sur la ligne "Double entrée = in.nextDouble();" je reçois une erreur d'incompatibilité de type qui dit "incompatibilité de type: ne peut pas convertir du double au double" – seriallchiller

Répondre

4

Pour calculer la moyenne finale:

double sum = 0; 
for(double d : numbers) { 
    sum += d; 
} 
System.out.println(sum/numbers.size()); 
0
Double sum += element; 

Ce n'est pas la syntaxe juridique, vous essayez d'ajouter quelque chose à une définition variable, qui ne fonctionne pas. Vous êtes proche cependant. Déclarez simplement la variable sum en dehors de la boucle for.

double sum = 0; 
for (double element : numbers) { 
     sum += element; 
    } 
System.out.println(sum/numbers.size()); 

Vous ne souhaitez probablement pas imprimer la moyenne actuelle à chaque fois, il vous suffit de la déplacer après la boucle.

1
// don't miss the imports 
import java.util.ArrayList; 
import java.util.Scanner; 

// you might have missed to add your main() method in a class 
public class Average { 
    public static void main(String[] args) { 
     // This part was ok 
     ArrayList<Double> numbers = new ArrayList<Double>(); 
     Scanner in = new Scanner(System.in); 
     while (in.hasNextDouble()) { 
      Double input = in.nextDouble(); 
      numbers.add(input); 
     } 
     in.close(); 

     // Forgot to initialize the value of sum 
     Double sum = 0d; 
     for (Double element : numbers) { 
      // add the element 
      sum += element; 
      // don't count the average here 
     } 
     // count it outside the loop 
     System.out.println(sum/numbers.size()); 
    } 
} 
0

j'ai ajouté java.util paquet qui est nécessaire pour Scanner et collections classes dans votre code principal problème était dans votre réponse de marque plz boucle for. merci :)

import java.util.*; 
    public class Test { 

     public static void main(String[] args) { 
      Double sum=0.0; 
       ArrayList<Double> numbers = new ArrayList<Double>(); 

       Scanner in = new Scanner(System.in); 

       while (in.hasNextDouble()) 
       { 
       Double input = in.nextDouble(); 
       numbers.add(input); 
       } 

       in.close(); 


       for (Double element : numbers) { 
        sum += element; 
      } 
        System.out.println(sum/numbers.size()); 

       } 

    } 
Questions connexes