Problem mit Funktionen!

  • Ich bin noch ein C++ Anfänger und habe ein Problem beim Thema Funktionen. Ich möchte ein Programm schreiben, dass den Array mit den Zahlen 5,7,4,3,9,10,1 einließt und in einer rekursiven Funktion, das Array durchläuft und nur die Zahlen ausgibt die kleiner als das bisherige Minimun, also z.b. min 5 nach der 1. Zahl, 7 wird nicht ausgegeben weil größer, dann wird 4 ausgegeben und das min wird auf 4 gesetzt, dann wird 3 ausgegeben und das min auf 3 gesetzt u.s.w. Das Durchlaufen des Arrays soll aber in rekursiver Funktion passieren ohne Schleife. Ich habe bisher folgenden Code, aber dieser gibt immer nur die Zahl 0 aus. Vielleicht könnte mir jemand helfen.

    #include <iostream>
    using namespace std;

    int arr[7]={5,7,4,3,9,10,1};
    int min=30;
    int pos=0;

    int durch(int pos,int min) {

    if (pos>7)
    return

    pos=arr[pos];
    if (pos<min) {
    cout << pos;
    min=pos;
    durch((++pos),min);
    }
    else if (pos>min) {
    durch((++pos),min);
    }
    else;
    }

    int main () {
    int min;
    durch(pos, min);
    system("PAUSE");
    return 0;
    }


    Und vielleicht könntet ihr mir ein Paar Tipps geben, wo man im Internet das Kapitel Funktionen gut erklärt bekommt.

    Vielen Dank im Vorraus.

  • Okay:
    Erstmal:

    Code
    else;


    Das kann weg.
    Dann:

    Code
    return;


    Macht nur Sinn, wenn die Funktion den Rückgabetyp void hat, due musst dann schon return -1; machen, wenn du int haben willst.

    Code
    else;
    }
    
    
    int main()...


    Die Funktion ist vom Typ int, also musst du da auch etwas zurückgeben, am Ende der Funktion zum Beispiel return 0;

    Da deine Funktion aber eigentlich nichts zurückgeben muss, verändere sie einfach mit:

    Code
    void durch(int pos, int min)


    Dann kannst du die Sachen mit dem Return auch so lassen.
    Außerdem sollt main am Ende ein ; haben nach dem }.
    Von system würde ich Abstand nehmen, da es nicht plattformübergreifend ist, möchtest du es dennoch benutzen, musst du auch #include <system.h> einfügen.

    Viele liebe Grüße
    The User