[Erledigt] #C berechnen der Fakultät

Hier mal mein Code

Code:
#include <stdio.h>


void main()

{


int Zahl;
int i=1;


printf ("Geben Sie eine Zahl ein: ");  

scanf    ("%i", &Zahl);

  
for(i=1;i<Zahl+1;i++)
Zahl = Zahl*i;

   
printf ("Ergebnis:        %i\n", Zahl);

}

Ich bekomme aber immer utopische Ergebnisse raus und kann mir das nicht erklären, denke der Fehler liegt in der Schleife (wo auch sonst).
Komme einfach nicht mehr weiter X(
 
Zuletzt bearbeitet:
Du hast da ein wenig vermischt, es könnte zb. so aussehen:

Code:
#include <stdio.h>

main() {
    int zahl, i, fak;

    scanf("%d",&zahl);

    fak=1;
    for (i=2;i<=zahl;i++)
        fak=fak*i;

    printf("Faktultät:%d\n",fak);
}
 
danke :), ist ja wirklich ne relativ einfache Aufgabe, ich glaube so ähnlich wie das was du hattest war es schonmal, aber es kam trotzdem was falsches raus.

Und ich zerbrech mir hier den Kopf obwohls so einfach war, wohl einfach ne Blockade gehabt.
 
Du hast da einen Denkfehler drinnen so wie ich das sehe:
Angenommen du berechnetst Fak(4)
dann fängst du mit Zahl = 4 * i(1) = 4 an
und dann Zahl = 4* i(2) = 8


deine Ausgangszahl sollte aber 1 sein. Das beste ist du legst einen zusätzliche Variable Ergebnis an.
Code:
#include <stdio.h>


void main()

{


int Zahl;
int i=1;
int Ergebnis = 1;


printf ("Geben Sie eine Zahl ein: ");  

scanf    ("%i", &Zahl);
printf ("Eingabe:        %i\n", Zahl);
  
for(i=1; i<=Zahl;i++){
    Ergebnis = Ergebnis * i;
    printf ("Zwischenergebniss:        %i\n", Ergebnis);
}
   
printf ("Ergebnis:        %i\n", Ergebnis);

}

Edit: ups scheint schon gelöst
 
Zurück
Oben