Je souhaite connaître la moyenne de la somme des lignes, mais dans le cas où zéro apparaît dans la ligne, cette colonne particulière doit être laissée lorsque la moyenne de la ligne est terminée. que ce soit plus clair. J'ai une matrice direMoyenne de la somme des lignes: Les éléments semblent être zéro par comparaison
5 3 4 4 0
3 1 2 3 3
4 3 4 3 5
3 3 1 5 4
1 5 5 2 1
somme moyenne de ligne pour la première ligne doit être 16/4 au lieu de 16/5 parce que nous avons quitté la ligne 1 colonne 5 car il contient « 0 » valeur
je suis en train code suivant. pour la première rangée, il fonctionne bien, mais pour le reste chaque rangée 2-5 et chaque colonne 5 laisse sa valeur bien que ce ne soit pas zéro.
mon code est:
int rows = 5;
int cols = 5;
float hostMatrix[] = createExampleMatrix(rows, cols);
System.out.println("Input matrix:");
System.out.println(createString2D(hostMatrix, rows, cols));
float sums[] = new float[rows];
for(int i=0;i<rows;i++){
float sum = 0,counter=0;
for(int j=0;j<cols;j++){
if(hostMatrix[j]==0){
sum += hostMatrix[i * cols + j];
}
else
{
sum += hostMatrix[i * cols + j];
counter++;
}
}
sum=sum/counter;
sums[i] = sum;
}
System.out.println("sums of the columns ");
for(int i=0;i<rows;i++){
System.out.println(" "+sums[i]);
}
sortie du programme que je reçois est:
sums of the columns
4.0
3.0
4.75
4.0
3.5
je veux la sortie comme:
4.0
2.4
3.8
3.2
2.8
s'il vous plaît me conduiras où je fais faux
Avec chaque rangée de votre tableau, vous vérifiez toujours 'hostMatrix [j] == 0' dans la condition' if', et quand 'j = 4', bien sûr' hostMatrix [4] == 0' dans votre tableau . Vous pouvez essayer la réponse de 'nhouser9' ci-dessous pour corriger, ou simplement changer' if (hostMatrix [j] == 0) 'en' if (hostMatrix [i * cols + j] == 0) '. –