Programm Funktionen C++



  • Hallo Zusammen,

    Ich hoffe ihr könnt mir helfen. Ich soll für folgende Aufgabe ein Programm erstellen:

    Schreiben und testen Sie eine Funktion min mit zwei int-Parametern, deren Rückgabewert das Minimum der beiden Argumentwerte ist.

    mein Quelltext sieht so aus nur leider versteh ich die aufgabe nciht ganz. was zur hölle sind Argumentwerte???
    könntet ihr mein Programm mal verbessern so das es zur Aufgabe passt

    //---------------------------------------------------------------------
    #include <iostream>
    #include <cstdio>
    using namespace std;
    //---------------------------------------------------------------------
    int min(int);
    int main ()
    {
        int x1, x2;
        cout << "Bitte geben Sie eine Zahl ein:" <<endl;
        cin >> x1;
        cout << "Bitte geben Sie eine weitere Zahl ein:" <<endl;
        cin >> x2;
        system ("Pause");
    }
    //---------------------------------------------------------------------
    int min(int x1, int x2)
    {
        if (x1>x2)
        {
            return x2;
        }
        else
        {
            return x1;
        }
    }
    

    und wie kriege ich da jetzt die min ausgabe rein :x?

    mfg

    /edit pumuckl: cpp-Tags. Nächstemal selber machen bitte!



  • cout << min(x1,x2);
    

    Stimmt doch alles soweit.

    Ps: Bitte C/C++ Codetags verwenden.



  • int main ()
    {
        int x1, x2;
        cout << "Bitte geben Sie eine Zahl ein:" <<endl;
        cin >> x1;
        cout << "Bitte geben Sie eine weitere Zahl ein:" <<endl;
        cin >> x2;
        int x3 = min(x1,x2);
        cout << "Das Minimum von " << x1 << " und " << x2 << " ist " << x3 << "\n";
        system ("Pause");
    }
    


  • Die min()-Funktion sieht für einen Anfänger schon recht brauchbar aus (soll heißen, sie macht was sie soll), sie passt allerdings nicht zu der Deklaration int min(int); , was den Compiler eventuell vor Probleme stellen könnte, wenn du sie nutzen willst. Jetzt mußt du die Funktion nur noch aufrufen, um etwas von ihr zu haben.

    PS: Knntest du deine Quelltexte in cpp-Tags einschließen? Das macht es einfacher für andere, sie zu lesen.

    PPS: Ich sehe nicht, daß du die <cstdio> irgendwo verwendest.



  • Warum stört das jetzt meinen Compiler nicht 😕

    Das Ding hat zu viele Features...



  • HighLigerBiMBam schrieb:

    Warum stört das jetzt meinen Compiler nicht 😕

    Das Ding hat zu viele Features...

    Was sollte ihn stören? Daß dort zwei Funktionen mit dem Namen min(...) deklariert sind, ist zulässig - das nennt sich Overloading. Daß du min(x,y) verwenden kannst, obwohl es an dieser Stelle noch gar nicht definiert ist, hängt vermutlich an den verwendeten Headern, die irgendwo ihr eigenes min() definiert haben.



  • HighLigerBiMBam schrieb:

    Das Ding hat zu viele Features...

    Nein, er kann im Gegensatz zu Dir C++. 😃

    Es darf eine int min(int) UND eine int min(int,int) im selben Programm geben. Daher gibt's keinen Fehler bei der "falschen" Deklaration oben.
    Und dann kann man sich noch selber veralbern, wenn man die std::min aufruft, weil die eigene min zu dem Zeitpunkt noch gar nicht bekannt ist.
    Folgendes Programm rechnet erstaunliocherweise korrekt.

    //---------------------------------------------------------------------
    #include <iostream>
    #include <cstdio>
    using namespace std;
    //---------------------------------------------------------------------
    int min(int);
    int main ()
    {
    	int x1, x2;
    	cout << "Bitte geben Sie eine Zahl ein:" <<endl;
    	cin >> x1;
    	cout << "Bitte geben Sie eine weitere Zahl ein:" <<endl;
    	cin >> x2;
    	cout << min(x1,x2) << '\n';
    }
    //---------------------------------------------------------------------
    int min(int x1, int x2)
    {
    	if (x1>x2)
    	{
    		return x2;
    	}
    	else
    	{
    		return x2;//Programmierfehler
    	}
    }
    

    Natürlich ist nicht garantiert, daß diese beiden Header wie bei mir zufällig noch den Standard-Header inkludieren, wo min definiert wird.



  • Hehe ich habe gerade nicht an std::min gedacht 😃
    Das kommt davon wenn man using namespace std; verwendet.



  • Vielen Dank für die schnellen Antworten (: ich hatte es immer mit
    cout << min oder cout << x1
    versucht
    vielen vielen dank
    Top Forum


Anmelden zum Antworten