[Hilfe] Euler'sche Zahl berechnen!



  • Hallo zusammen ich bräuchte mal eure Hilfe!
    Wir haben in der Schule den Auftrag bekommen, ein Programm zu Schreiben,
    was die Euler'sche Zahl berechnet! Es darf nur die Libary stdio.h verwendet werden. Bisher hab ich das Programm auch dazu gebracht mir die euler'sche Zahl auszugeben, aber diese ist nicht genau! Egal wechen neherungs wert ich ab 10 eingebe, die Zahl bleibt immer gleich!

    Hier mein Code:

    /* 
     * Funktion zur Berechnung der 
     * Fakultät
     */
    float fakultaet(int anzahl)
    {
    	float fakultaet = 1;
    	if(anzahl !=0)
    	{
    		for(int x=2; x<=anzahl; x++)
    		{
    			fakultaet = fakultaet * x;
    		}
    	}
    	else if(anzahl == 0)
    	{
    		fakultaet = 1;
    	}
    	return fakultaet;
    }
    
    /* 
     * Funktion zur Berechnung der 
     * Euler'schen Zahl mit Hilfe
     * der Fakultäts Funktion
     */
    float euler(int wieoft)
    {
    	float euler = 0;
    	for(int x=0; x<=wieoft; x++)
    	{
    		euler = euler+(1/fakultaet(x));
    	}
    	return euler;
    }
    
    /* Unsere Main Funktion */
    int main()
    {
    	int neherung = 0;
    	printf("\n\tGeben Sie den Wert zur neherung ein: ");
    	scanf("%i", &neherung);
    	printf("%f\n\n", euler(neherung));
    	system("PAUSE");
    }
    

    Und so Sieht das ergebnis in der Konsole aus:
    http://www.webschwarz.de/euler.jpg



  • das könnte an dem datentyp

    float
    

    liegen

    float sind so ungefähr 4.8 nochwas mal 10e34

    du solltest

    double
    

    oder sogar

    long double
    

    nehmen

    also überall statt float double nehmen

    achja und das nächste mal verwendest du statt code tags die cpp tags...



  • OK danke hat mir sehr geholfen ;-)!
    Sorry das mit dem cpp tags hab ich übersehen!



  • Skym0sh0 schrieb:

    achja und das nächste mal verwendest du statt code tags die cpp tags...

    ... verwendest du bitte ... 👍


Anmelden zum Antworten