Tom: Wie komisch ist das denn?

Beitrag lesen

Hello,

long double summe(long double s, long double *f, int n)
{
        if(n>1)
        {
                summe(s+*f++, f, n-1);
        }
        else
        {
                cout << "Berechneter Wert ist " << s << "\n" << s << ", jetzt erfolgt die funktionsübergabe: \n";

//                 return s;

}

return s;

}

Also meiner Meinung nach gehört das "return s" nach unten
C++ ist zwar recht merkwürdig gestrickt, aber warum sollte die Einstirgsstuf der Rekursion etwas zurückgeben, wenn Du es ihr nicht sagst?

Dein Ergebnis steht nämlich in der globalen Variable s und

cout << "Summe aller Zahlen ist " << summe(x,10) << "\n";
                                         -----------

hat überhaupt keinen Rückgabewert, da "summe(0, f, n)" keinen hat.

Das ist ein Standardproblem bei unstrukturierter Programmierung.
Hättest Du Nassi-Shniderman beherzigt, dann wäre es Dir aufgefallen.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de