Java Matrices Matrices
Ce programme ajoute deux matrices 3x3. Il compile et s'exécute, mais la sortie, au lieu d'être:
1.0 2.0 3.0 0.0 2.0 4.0 1.0 4.0 7.0
4.0 5.0 6.0 + 1.0 4.5 2.2 = 5.0 9.5 8.2
7.0 8.0 9.0 1.1 4.3 5.2 8.1 12.3 14.2
Il produit:
1.0 2.0 3.0 0.0 2.0 4.0 0.0 0.0 0.0
4.0 5.0 6.0 + 1.0 4.5 2.2 = 0.0 0.0 0.0
7.0 8.0 9.0 1.1 4.3 5.2 0.0 0.0 0.0
Je ne suis pas sûr pourquoi, la sortie s'affiche comme tous les zéros? Les mathématiques dans le programme "semble" le droit de me... il y a une chose qui me manque ici?
import java.util.Scanner;
public class AddMatrices{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int N = 3;
//get the users input and store it in the two arrays
System.out.println("\nEnter matrix1: \n");
//declare 2 arrays with the appropriate number of rows and columns in
//them to store the numbers in each matrix.
//this is the first one.
double[][] matrix1 = new double[N][N];
for (int i = 0; i < matrix1.length; i++) {
for (int j = 0; j < matrix1[i].length; j++) {
matrix1[i][j] = input.nextDouble();
}
}
//get the users input and store it in the two arrays
System.out.println("\nEnter matrix2: \n");
//declare 2 arrays with the appropriate number of rows and columns in
//them to store the numbers in each matrix.
//this is the second one.
double[][] matrix2 = new double[3][3];
for (int i = 0; i < matrix1.length; i++) {
for (int j = 0; j < matrix1[i].length; j++) {
matrix2[i][j] = input.nextDouble();
}
}
//call the addMatrix method and pass it the two arrays
double[][] resultingMatrix = addMatrix(matrix1, matrix2);
System.out.println("The addition of the matrices is ");
}//end of main method
//write the addMatrix method to add the two matrices and display the result
public static double[][] addMatrix(double[][] m1, double[][] m2){
double[][] result = new double[m1.length][m1[0].length];
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[0].length; j++){
m1[i][j] += m2[i][j];
}
}
for (int i = 0; i < m1.length; i++) {
char plus = '+';
for (int j = 0; j < m1[0].length; j++) {
System.out.print(" " + m1[i][j]);
}
if (i == m1.length / 2)
System.out.print(" " + plus + " ");
else {
System.out.print(" ");
}
for (int j = 0; j < m2[0].length; j++) {
System.out.print(" " + m2[i][j]);
}
if (i == m1.length / 2)
System.out.print(" = ");
else {
System.out.print(" ");
}
for (int j = 0; j < result[0].length; j++) {
System.out.print(" " + result[i][j]);
}
System.out.println();
}
return result;
}//end of add matrices
}//end of class
- Différencier la logique de présentation. Ajoutez d'abord les matrices dans une nouvelle matrice en mémoire, plus tard, d'imprimer les résultats. Va faire du débogage du code beaucoup plus facile. Oh, et un débogueur, vous permettra de suivre comment est votre logique de travail.
Vous devez vous connecter pour publier un commentaire.
Je pense que vous n'êtes jamais à l'affectation du résultat à la variable résultats
vous devriez changer
à
Vous êtes à la définition de la valeur ajoutée de m1 au lieu de résultat. Dans votre première double-boucle, il suffit de faire: