unterschied zwischen zwei (kleinen) fakultäts programmen



  • Hallo,

    ich habe mir ein programm geschrieben das die fakultät einer bestimmten zahl ausrechnen soll. mein prog lautet:

    #include <stdio.h>
    int main()
    {
    int a,fak=1,i;
    printf("Geb mal ne Zahl ein: ");
    scanf("%d",&a);

    printf("\n\nDu willst also die Fakultaet von %d...\n",a);

    for (i=1;i<=a;i++);
    fak *= i;

    printf("\n Ergebniss: fak=%d",fak);
    printf("\n Zähler: i=%d",i);
    printf("\n Eingegeben war: a=%d\n",a);
    system("pause");
    }

    dabei kommt irgendwie nicht das richtige raus. dann kam die große recherche, und ein ähnliches programm lautet:

    int main()
    {
    int a;
    printf("Ganze Zahl eingeben: ");
    scanf("%d",&a);

    printf("Fakultaet der Zahl: %d\n",fak_iter(a));
    system("pause");
    }

    int fak_iter(int n)
    {
    int i, fak=1;
    for (i=1; i<=n; i++)
    fak *= i;
    return fak;
    }

    Hier stimmt das Ergebniss. Nur ich sehe keine großen Unterschiede in den Rechenoperationen, oder?



  • phoenixtr schrieb:

    for (i=1;i<=a;i++);

    Das Semikolon hier beendet deine Schleife. Die nachfolgende Anweisung wird also nicht wiederholt.



  • mfk, ich liebe dich 😉

    ist schon 7 jahre her als ich zum letzten mal richtig programmiert hab, etwas habe ich doch vergessen 🙂


Anmelden zum Antworten