LWeber89 Geschrieben 18. März 2009 Geschrieben 18. März 2009 Hi Leute die Aufgabe ist 2 arrays zu addieren und das dann in einem 3ten auszugeben. #include <stdio.h> #include <conio.h> #include <iostream.h> #include <vcl.h> void main(void) { int A[3][2]={{3,2},{4,5},{2,1}}; int B[2][2]={{1,7},{5,9}}; int C[3][2]; int i,k,j =0; for (i=0;i<3;i++) { for (j=0;j<2;j++) { for (k=0;k<2;k++) { C[j] += A[k] * B[k][j]; } } cout<<C[j]; } getch(); } ------------------------------------------------ was muss man nun noch dazu hacken? bzw wo ist der Fehler danke Zitieren
Klotzkopp Geschrieben 18. März 2009 Geschrieben 18. März 2009 Der größte Fehler ist vermutlich, dass das Programm nicht zwei Arrays addiert, sondern zwei Matrizen multipliziert. Zitieren
Micha82 Geschrieben 18. März 2009 Geschrieben 18. März 2009 Also: Um Arrays (Matrizen) addieren zu können müssen beide Arrays gleich groß sein... siehe Matrix (Mathematik) ? Wikipedia ... müsstest also zur addition sowas hier machen (ist in C schnell getippt ): #include <stdio.h> int main() { int A[3][2]={{3,2},{4,5},{2,1}}; int B[3][2]={{1,7},{5,9},{3,5}}; int C[3][2]; int i,j =0; for (i=0;i<3;i++) { for (j=0;j<2;j++) { C[j] = A[j] + B[j]; printf("%02d ",C[j]); } printf("\n"); } return 0; } das wäre eine Addition Zitieren
da-beauty Geschrieben 21. März 2009 Geschrieben 21. März 2009 (bearbeitet) Nur ein Tipp: Die Zwei Matrizen müssen nicht beide gleich Größ sein!! Nur die Spalten bei der Ersten Matrize und die Zeilen bei der Zweiten Matrize müssen gleich sein. Der Code zum Berechnen lautet wie folgt: for(int x = 0; x < matrixA_line ; x++) { for(int y = 0; y < matrixB_column ; y++) { for(int z = 0; z < matrixB_line ; z++) { size_matrixC[x][y] += size_matrixA[x][z] * size_matrixB[z][y]; } } } Bearbeitet 21. März 2009 von da-beauty Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.