[Erledigt] #C berechnen der Fakultät

Havoc17

New member
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:

Indi

Member of Honour
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);
}
 

Havoc17

New member
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.
 

Stein

New member
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
 
Oben