return problem



  • hallo alle zusammen,

    bin noch ein anfänger in c++ und habe probleme mit dem return. also den rückgabewert einer funktion.

    hier mal mein quelltext:

    #include<iostream>
    using namespace std;
    
    float summe(float *px, float *py);
    
    int main()
    {
    float x,y;   
    cout<<"Geben Sie eine Zahl x ein: ";
    cin>>x;
    
    cout<<"Geben Sie eine Zahl y ein: ";
    cin>>y;    
    
    summe(&x,&y);
    cout<<sum;
    cout<<endl <<"Main" <<endl <<"x=" <<x <<endl <<"y=" <<y;    
    
    system("Pause");
    return 0;
    }
    
    float summe(float *px, float *py)
    {
        float temp=*px;
        *px=*py;
        *py=temp;
    
        float sum=*px+*py;
    
        return sum;
    }
    

    das programm soll die werte von x und y über zeiger dauerhaft verändern. dies funktioniert auch wunderbar. aber es soll auch noch die summe der beiden eingegebenen zahlen errechnen und dann mit hilfe von return an die main funktion zurückgeben. wenn ich nun aber in der main funktion cout<<sum mache, gibt mir devc++ die fehlermeldung: 'sum' undecleared.

    soll return nicht genau das machen? einen wert an die main zurückgeben?
    im vorraus schonmal danke 🙂



  • Hi,
    für die Funktion main ist die in der Funktion summe deklarierte Variable sum nicht sichbtar ( Siehe unter Sichtbarkeit von Variablen im Skript/Buch deines Vertrauens nach. )
    Davon abgesehen, sind Zeiger hier und da nützlich, nicht aber in diesem Fall.

    #include<iostream> 
    using namespace std; 
    
    float summe(float x, float y) 
    { 
        return x + y;
    }   
    
    int main() 
    { 
    	float x,y, 
    		sum;   // Bssssss, ich bin eine Biene :)
    	cout<<"Geben Sie eine Zahl x ein: "; 
    	cin>>x; 
    	cout<<"Geben Sie eine Zahl y ein: "; 
    	cin>>y;     
        sum = summe(x,y); 
    	cout << endl << "Hello from main: " << x << " + " << y << " = " << sum << endl;
    	return 0; 
    }
    

    Gruß,
    B.B.


Log in to reply