Hallo,
ich hab ein Programm geschrieben, dass drei Matrizen erstellt und die Ergebnismatrix definiert. In einer weiteren Methode wird ohne Fehler Matrix A und B zu D addiert. In der Methode für die Multiplikation kompiliert er diese zwar ohne zu meckern, aber das Ergebnis ist völlig falsch.
Fehlerbeschreibung im Code
Fehlerbeschreibung im Code
Java:
public class MatrixDouble {
//Addiert, D = A+B
public static void add(int[]D, int[]A, int[]B) //übergeben der notwendigen Matrizen
{
for (int i=0; i<D.length; i++) //Ergebnismatrix soll nicht länger sein als die definierte Länge
D[i] = A[i] + B[i]; //Addition von A und B
}
public static void mul(int[]D, int[]C, int[]B) //übergeben der notwendigen Matrizen
{
for (int i=0; i<D.length; i++) //Ergebnismatrix soll nicht länger sein als die definierte Länge
D[i] = C[i] * B[i]; //Multiplikation von C und B und genau hier glaube ich ist der Fehler oder in der Schleife darüber, da manuell ausgerechnet die Matrix lautet {36,40,68,76,100,112}
} //und ausgeben wird die Matrix {8,10,10,13,15,13}
//zur schönen Ausgabe
public static void out(int[]matrix)
{
for (int i=0; i<matrix.length; i++)
{
if ( i % (int)Math.sqrt(matrix.length) == 0 )
System.out.println();
System.out.print(matrix[i]+" ");
}
System.out.println();
}
public static void main (String args[])
{
int[] A = {1,2,3,4,5,6}; //Matrix A 3x2 wird erstellt
int[] B = {7,8,9,10,11,12 }; //Matrix B 3x2 wird erstellt
int[] C = {1,2,1,3,4,1,5,6,1}; //Matrix C 3x3 wird erstellt
int[] D = new int[6]; //Ergebnismatrix D 3x2 wird definiert
System.out.println(); //A anzeigen
System.out.println("Matrix A:");
out(A);
System.out.println();
System.out.println("Matrix B:"); //B anzeigen
out(B);
System.out.println();
System.out.println("Matrix C:"); //C anzeigen
out(C);
System.out.println();
System.out.println("Summe S=A+B:"); //Summe aus A und B anzeigen
add(D, A, B);
out(D);
System.out.println();
System.out.println("Produkt P=C*B:"); //Produkt aus C und B anzeigen
add(D, C, B);
out(D);
}
}