Summe von Matrizen
-
Hallo Leute,
ich habe ein riesen Problem. Für Hilfe wäre ich sehr dankbar.
Die Aufgabe:
Das Programm addiert zwei Matrizen. Die im Hauptprogramm deklarierten Matrizen sind mit Werte belegt. Diese Matrizen werden mit der Ergebnismatrix als Zeiger an die Funktion übergeben . Es wird darauf hingewiesen, dass Arrays von Funktionen nicht zurückgegeben werden! Zum Schluss sollen alle Matrizen zur Ergebnisprüfung ausgegeben werden.Mein bisheriger Code:
#include <stdio.h> void matrixadd(int a[5][5], int b[5][5], int result[5][5]); void print_matrix(int a[5][5]); void main(void) { int a[5][5] = { {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5},{1, 2, 3, 4, 5} }; int b[5][5] = { {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5},{1, 2, 3, 4, 5} }; int result[5][5]; matrixadd(a, b, result); printf("\nMatrix 1:\n"); print_matrix(a); printf("\nMatrix 2:\n"); print_matrix(b); printf("\nResult:\n"); print_matrix(result); } void matrixadd(int a[5][5], int b[5][5], int result[5][5]) { int i, j; for(i=0; i<5; i++) { for(j=0; j<5; j++) { result[i][j] = a[i][j] + b[i][j]; } } } void print_matrix(int a[5][5]) { int i, j; for (i=0; i<5; i++) { for (j=0; j<5; j++) { printf("%d\t", a[i][j]); } printf("\n"); } }
-
Wo liegt das Problem? Was ist das Problem?
Poste doch mal die Ausgabe.
-
Hallo
das Programm läuft, aber es soll ja anscheinend mit Zeigern gearbeitet werden.
Meine Sorgen ist, dass ich zwar ungefähr weiss, was ein Zeiger ist, jedoch kann ich mir keinen Reim darauf machen, wie ich in diesem Programm diesen Teil der Aufgabenstellung erledigen muss:Diese Matrizen werden mit der Ergebnismatrix als Zeiger an die Funktion übergeben
Habe schon zeiger deklariert und versucht diese dann zurückzugeben...verzweifel
Ich habe zwar eine grobe Vorstellung, jedoch bekomme nix vernünftiges heraus... Hilfe........
-
oder verstehe ich jetzt nix mehr !!
-
void matrixadd(int a[5][5], int b[5][5], int result[5][5]); void print_matrix(int a[5][5]);
Da ist die Antwort.
Arrays sind "benutzerfreundliche Zeiger".
Ein Zeiger auf ein Array ist immer ein Zeiger auf das erste Element.
Wenn du das 5. Element haben willst, kannst duarr[4];
oder
*(arr+4);
schreiben.