0
votes

Comment calculer la moyenne de tous les nombres non négatifs dans la matrice

J'ai un problème pour calculer la moyenne de Tous les nombres non négatifs dans la matrice, zéro inclusivement et renvoient zéro autrement. Vous trouverez ci-dessous mon codage, aidez-moi s'il vous plaît à vérifier quelles pièces sont incorrectes. Merci.

  public class AverageOfNonNegativeNumbers {

  public static double averageOfNumbers(double[] x) throws Exception {
    double avg = 0.1;
    if (x != null) {
        for (double i = 0.1; i < x.length; i++) {
            if ( x[i]%2 == 0 ) {  //Anyone know how to set avoid calculate for negative numbers?
                avg = avg / x[i];  //This code is calculate total average number. 
            }
        }
    }
    return avg;
}

public static void main(String args[]) {
    double x[] = {1.663, -2.1312, 3.13231, 4.124, -5.551, -6.1312, 7.111, 8.222, -9.01};
    try {
        System.out.println(AverageOfNonNegativeNumbers.averageOfNumbers(x));
    } catch (Exception e) {
        System.out.println("Error!!!");
    }
}
}


2 commentaires

Convertir le int AVG sur un flotteur / double aussi.


"Retourner zéro sinon", mais quelle est la condition de "sinon"? Et "j'ai un problème" n'est pas très utile / descriptif


5 Réponses :


0
votes

Vous essayez d'utiliser un double comme index sur un tableau; Cela n'a pas vraiment de sens. Un tableau doit être indexé par un entier. C'est-à-dire qu'un tableau consiste en un élément en position 0, la position 1, 2, etc.; Cela n'a pas beaucoup de sens de dire «l'élément de tableau en position 0.1».

Pour compiler votre code, vous devrez déclarer Variable 'I' dans votre boucle en boucle dans la fonction 'pincefnumbers' comme "INT" et non un "double".


0 commentaires

1
votes

Définir 2 variables pour stocker la somme de nombres non négatifs et le nombre de nombres non négatifs.

Ensuite, parcourez la matrice et vérifiez chaque élément pour la non-négativité. Si non négatif, ajoutez cette valeur à la somme et incrémentez le nombre par 1.

Enfin, divisez la somme > par compte pour obtenir la moyenne. xxx


3 commentaires

Je sais que vous avez copié, mais qu'est-ce que offre une exception pour?


Oh! :) corrigé ça. Merci!


Tu as raison. Merci M. Udith Gunaratna aidez-moi à résoudre cette question!



0
votes

Modifications dans votre code: Selon votre question, vous souhaitez calculer la moyenne de tous les numéros négatifs, y compris 0.

Erreurs:

  1. La méthode permettant de vérifier si un numéro est inférieur à 0,2% 2 vérifie si le nombre est même ou non.
  2. Le moyen de calculer la moyenne est de calculer la somme et du nombre, puis de les diviser pour minimiser les erreurs de points flottants. XXX


0 commentaires

1
votes

Voici les problèmes suivants:

A.Veux tentent d'accéder au x [i], mais je dois être entier , pendant que vous l'avez comme double

b. X [I]% 2 == 0 Vérifie si le nombre est même ou non. besoin de changer cela en x [i]> = 0

c. La logique à calculer la moyenne n'est pas correcte. xxx


0 commentaires

0
votes

Un simule one-doublez à l'aide de Java 8 Strems: xxx

Il crée un DoubleStream ( maptodouble ) et supprime tous les numéros plus grands 0 et calcule la moyenne.

S'il n'y a aucun résultat (car x est vide) il retournera 0 Voir Ce Pour référence.


0 commentaires