Veröffentlicht 4. November 201014 j Also habe folgende Aufgaben: 1.Schreiben Sie eine C-Funktion, die für eine 5×5-Matrix das größte Element zurück liefert.Welche Typdeklaration ist dazu notwendig? 2.Wie ist die Funktion zu verändern, wenn neben dem Wert des Elementes auch dessen Position in der Matrix ermittelt werden soll? Meine Lösung zu 1.: #include <stdio.h> int matrixc(int input[5][5]); int main() { int output; int matrix[5][5] = { {1,2,3,4,5}, {5,6,7,8,9}, {4,3,2,1,9}, {1,2,3,4,5}, {0,0,0,0,2}}; // Aufruf der Funktion, die du schreiben sollst // Dabei wird die Matrix übergeben output = matrixc(matrix); // Kann man auch noch ausgeben, um besser zu kontrollieren printf("%d\n", output); } // Und die schreibst du dann: int matrixc(int input[5][5]) { // lokale Variablen int i,z; int high = input[0][0]; // Anfangswert ist der erste Wert /** * Nun für jede Zeile und Spalte durchlaufen * und dabei immer das Element speichern, welches * größer ist, als das aktuelle Element. */ for (i=0; i < 5; i++) { for(z=0; z < 5; z++) { if (input[z] > high) { high = input[z]; } } } return high; } und 2. weiß ich nicht was ich verändern soll bzw dazukommt
4. November 201014 j Du musst doch dann nur noch zusätzlich die i/z-Koordinaten abspeichern, wenn die IF-Bedingung zutrifft. Die Position wird nur durch i und z bestimmt.
4. November 201014 j also muss ich i und j noch ausgeben oder wie?Du musst dir die Werte in i und z merken, an denen die letzte Zuweisung an high stattgefunden hat. Die könntest du dann über Referenzparameter an den Aufrufer zurückgeben.
4. November 201014 j kann mir einer sagen wie das geht? also der codWie wäre es mit ein wenig Eigeninitiative? Wenn du Aufgabe 1 selbst gelöst hast, sollte das doch kein großes Problem darstellen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.