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.
InformationsquelleAutor user1368970 | 2012-12-04