Hallo Thena,
Auf den ersten Blick sehe ich drei Probleme mit deinem Code:
- Du musst ganz am Anfang deiner Datei (nach dem include) die Methode "myFakultaet(double);" deklarieren, damit der Compiler weiß, das sie existiert und was für Argumente du ihr übergeben musst.
- Du musst den Rückgabewert deiner Methode bestimmen oder "void" hinschreiben, wenn es keinen Rückgabewert gibt. Sonst weiß der Compiler nicht, was er erwarten muss.
- Du musst der Methode, wenn du sie aufrufst, eine Zahl, deren Fakultät du haben willst, übergeben, und das Ergebnis in einer anderen Variable speichern.
Hier ein Beispiel, wie du es verbessern könntest:
#include <stdio.h>
double myFakultaet(double);
int main()
{
double val = 0; // ist egal was für ein Wert, muss halt nur existieren
double ergebnis = myFakultaet(val);
printf("%f", ergebnis);
return 0;
}
double myFakultaet(double val){
double ergebnis;
double a;
// Sie*
printf("Geben Sie eine Zahl ein ");
scanf_s("%f", &val);
ergebnis = 1;
// for- statt while-Schleife
for(int a = 1; a <= val; a++) {
// sonst setzt du das Ergebnis immer neu; += addiert es
ergebnis += ergebnis * a;
}
return ergebnis;
}