Funktion fragt Eingabe nicht ab



  • Limatex schrieb:

    EDIT: Achja, wie ist das mit den returns? Muss da irgendwas rein, oder kann ich einfach überall return 0 lassen?

    Das return 0 der main ist ok. Das return deiner Eingabe-Funktion ist aber unsinnig, denn dieses Ergebnis benutzt du sowieso nicht. Sinnvoll wäre es erst dann, wenn du es in einer Variable speicherst und weiterverwendest.



  • Ist das return 0 in der main nicht sogar nur optional?



  • 314159265358979 schrieb:

    Ist das return 0 in der main nicht sogar nur optional?

    Ja!


  • Mod

    314159265358979 schrieb:

    Ist das return 0 in der main nicht sogar nur optional?

    Ja. Return (egal welcher Wert) in main ist optional. Wenn das Ende der Funktion ohne return erreicht wird, wird 0 zurückgegeben.



  • Wen ich dir Returns in den anderen Funktionen aber rausnehme, gibt mir der Compiler einen Fehler aus. (Also halt 3 Stück, pro Funktion einer)

    Oder meintet ihr das ich bei Eingabe() einfach return 0 anstatt return i schreiben soll? So hab ich das dann auch gemacht^^

    ich lerne übrigens im Selbststudium weil unser Berufsschullehrer eine schnarchnase ist und kaum einer (Die die es nicht können, fast alle haben vorkentnisse) versteht es bzw. hört zu o.o



  • Limatex schrieb:

    Wen ich dir Returns in den anderen Funktionen aber rausnehme, gibt mir der Compiler einen Fehler aus. (Also halt 3 Stück, pro Funktion einer)

    Oder meintet ihr das ich bei Eingabe() einfach return 0 anstatt return i schreiben soll? So hab ich das dann auch gemacht^^

    void Eingabe() {
      //...
      //nix return! ;)
    }
    


  • der Compiler gibt die Fehler (wobei das sicher nur Warnungen sind) aus, weil du die Funktion als int Func() definiert hast und die sollte dann auch einen int zurückgeben. Da du aber nichts zurückgeben möchtest, kannst du einfach void drauß machen.

    greetz KN4CK3R



  • Danke an euch beide, hat super geklappt 🙂

    Mensch, bei euch versteh ich es sofort mit dem return, in der Schule nicht >.>

    Könntet ihr mir nen Beispiel gebenw ann ich return nehmen müsste? Sorry, ihr sollt mir keinen C++ Grundkurs geben, aber wir sind grad so toll dabei und im Moment bin ich auch extrem motiviert^^ Wär deshalb echt nett wenn ich da noch nen Beispiel bekommen würde 🙂

    Dankeschön nochmal 🙂



  • int meinCin()
    {
        int temp;
        cin >> temp;
        return temp;
    }
    
    void Eingabe()
    {
        for(int i = 0; i < 20; i++)
        {
            Zähler[i] = meinCin();
        }
    }
    

    greetz KN4CK3R



  • KN4CK3R schrieb:

    int meinCin()
    {
        int temp;
        cin >> temp;
        return temp;
    }
    
    void Eingabe()
    {
        for(int i = 0; i < 20; i++)
        {
            Zähler[i] = meinCin();
        }
    }
    

    greetz KN4CK3R

    Wichtig für's Verständnis ist vielleicht auch die Anwendung einer solchen Funktion:

    int myVar=meinCin();  //die Rückgabe der Funktion wird der Variablen myVar zugewiesen.
    


  • Dankeschön! 🙂

    Reicht dann erstmal soweit^^



  • _matze schrieb:

    demonking schrieb:

    Deine Input For-Schleife geht von den Werten 1-20.

    Von 1 bis 19 läuft sie...

    ja, sorry matze :p
    selbst nun verzählt ^^



  • Hey 🙂

    ich erlaube mir hier mal weiter zu posten, will nicht für alles nen neuen Thread aufmachen^^ ich hab jetzt mal einfach irgendwas geproggt, nur ein paar kleine Berechnungen um mal was mit Funktionen zu machen, aber wenn die If-Abfrage kommt ob ich mit Kreisen oder Quadraten rechnen will, dann rechnet er egal bei welcher eingabe mit Kreisen^^ hier mal mein (Hoffentlich nicht schlampiger Code)

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    double a,b,e;
    const double Pi=3.14159;
    void QuadratFlaeche()
    {
    	cout<<"Wie lang ist Seite a: ";
    	cin>>a;
    	e=a*a;
    	cout<<"Die Flaeche betraegt: "<< e <<" Quadratmeter"<<endl; 
    }
    void QuadratUmfang()
    {
    	cout<<"Wie lang ist Seite a: ";
    	cin>>a;
    	e=4*a;
    	cout<<"Der Umfang betraegt: " << e <<" Meter"<<endl;
    }
    void KreisFlaeche()
    {
    	cout<<"Wie groß ist der Radius: ";
    	cin>>a;
    	e=a*a*Pi;
    	cout<<"Die Flaeche des Kreises betraegt: " << e <<" Meter"<<endl;
    }
    void KreisUmfang()
    {
    	cout<<"Wie groß ist der Radius: ";
    	cin>>a;
    	e=2*a*Pi;
    	cout<<"Der Umfang des Kreises betraegt: " << e << " Meter"<<endl;
    }
    void QuadratKram()
    {
    	cout<<"Bitte wählen sie aus:\n";
    			cout<<"(1)Umfang des Quadrats berechnen";
    			cout<<"(2)Flaeche des Quadrats berechnen";
    			cin>>b;
    			if(b=1)
    			{
    				QuadratUmfang();
    			}
    			else if(b=2)
    			{
    				QuadratFlaeche();
    			}
    }
    void Kreiskram()
    {
    			cout<<"Bitte wählen sie aus:\n";
    			cout<<"(1)Umfang des Kreises berechnen";
    			cout<<"(2)Flaeche des Kreises berechnen";
    			cin>>b;
    			if(b=1)
    			{
    				KreisUmfang();
    			}
    			else if(b=2)
    			{
    				KreisFlaeche();
    			}
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    	cout<<"Bitte wählen sie:\n";
    	cout<<"(1)Berechnungen am Quadrat\n";
    	cout<<"(2)berechnungen am Kreis\n";
    	cin>>b;
    	if(b=2)
    	{
    		 Kreiskram();
    	}
    	else if(b=1)
    	{
    		 QuadratKram();
    	}
    	system("pause");
    	return 0;
    }
    

    Findet ihr den Fehler? hab ich irgendwelche Variablen etwa falsch gesetzt? hab nix gefunden <.<

    LG



  • b=1 ist Zuweisung, es muss b==1 heißen, erster!



  • Ach natüüüürlich^^

    Du hast recht, aber sowas hat man denk ich mal irgendwann drinn, typische Anfängerfehler! 🙂

    Dankesehr 😉


Anmelden zum Antworten