Thunder90 Geschrieben 4. November 2010 Geschrieben 4. November 2010 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 Zitieren
lupo49 Geschrieben 4. November 2010 Geschrieben 4. November 2010 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. Zitieren
Thunder90 Geschrieben 4. November 2010 Autor Geschrieben 4. November 2010 also muss ich i und j noch ausgeben oder wie? Zitieren
Klotzkopp Geschrieben 4. November 2010 Geschrieben 4. November 2010 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. Zitieren
Thunder90 Geschrieben 4. November 2010 Autor Geschrieben 4. November 2010 kann mir einer sagen wie das geht? also der cod Zitieren
Klotzkopp Geschrieben 4. November 2010 Geschrieben 4. November 2010 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 Zitieren
Thunder90 Geschrieben 4. November 2010 Autor Geschrieben 4. November 2010 ok denn werde ich es mal versuchen;) 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.