Einfach nur jeweils auskommentieren.
Die ganzen float(s), weil die Konstanten automatisch als double angenommen werden und sonst immer eine Warnung
kommt, wenn es zu float verkürzt wird.
Die einzige Version, die wirklich nicht funktioniert, ist Nr. 3 (Hi Ragon, wie geht's?), der Rest würde laufen, aber z.T.
mit Warnungen wegen Datenverlust, eben dem Abschneiden der Nachkommastellen.
@Xan: Woher weißt du, dass produkt und summe nur Ausgabeparamter sind, durch diese Übergabe können sie beides sein? (der Compiler meckert z.b. an, wenn sie nicht initialisiert sind - bei Delphi so schön einfach mit var, out und const)
Ich würde vom Sinn her rangehen, beim Aufruf der Funktion interessiert der Rückgabewert also nicht, da nirgends zugewiesen. Von den beiden ohne Datenverlust möglichen Varianten macht nur Nr. 4 Sinn, dort werden Zeiger übergeben und ermöglichen damit die Änderung der Variablen.
Also zusammengefasst:
3.) völlig unmöglich
1.), 5.) möglich, aber sicher nicht erwünschter Datenverlust durch Abschneiden der Nachkommastellen und auch keinerlei Möglichkeit zur Datenrückgabe - Funktion ist void, Varible sind Konstanten
2.) möglich, aber keinerlei Ergebnisrückgabe: das Ergebnis der Funktion wird nicht ausgewertet und die Parameter werden als Konstanten übergeben
es bleibt also nur Nr. 4
Passt auch recht gut zu meinen Erfahrungen, ich verwende häufig Win API-Funktionen, deren Rüchgabewerte, die
meistens tatsächlich nur einen Fehlercode bedeuten, werte ich eher selten aus. Die Ergebnisse finden sich in den
Variablen, die ich beim Aufruf als Zeiger übergeben habe.