Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 16. 10. 2013 20:00

votrelec1995
Příspěvky: 74
Reputace:   
 

Vypočet faktorialu v programe C

#include <stdio.h>
int main()
{
    int cisla,i,c;
    long int faktorial;
    printf("zadaj cislo: ");
    scanf("%d",&cisla);
    printf("zadaj i: ");
    scanf("%d",&i);
    printf("zadaj c: ");
    scanf("%d",&c);
    faktorial=1;
    for((i=1,i)<=(c,i++));
    faktorial=faktorial*i;
    printf("faktorial je %d,i je %d a c je %d"cislo,i,c );
    return 0;
}
Dobrý deň kde mám chybu tento program má vypočítať faktorial . Za rýchlu odpoveď a vyriešenie problému vopred ďakujem

Offline

 

#2 17. 10. 2013 15:17 — Editoval ado130 (17. 10. 2013 15:19)

ado130
Příspěvky: 86
Škola: FEKT VUT
Pozice: Študent
Reputace:   
 

Re: Vypočet faktorialu v programe C

V tom tvojom mi príde ten "for" nejak divno zapísaný, ak chceš tu máš jeden spôsob čo používam:

Code:

#include <stdio.h>

int fact;

int factorial(int fact) {
    if(fact < 0 ) return 0;
    if(fact == 1 || fact == 0) return 1;
    
    return factorial(fact-1)*fact;
}

int main(){
    
    printf("Zadaj cislo: \n");
    scanf("%d", &fact);
    system("CLS");
    printf("%d!=%d \n", fact, factorial(fact));
    
    system("PAUSE");
    return 0;  
}

Quidquid latine dictum sit, altum videtur.

Offline

 

#3 17. 10. 2013 15:34

Formol
Místo: Praha
Příspěvky: 782
Pozice: krotitel mikroskopů (UHIEM 1. LF UK)
Reputace:   42 
 

Re: Vypočet faktorialu v programe C

↑ ado130:
Jen si dovolím poznamenat, že rekurze je kanónem na vrabce, režie kolem rekurze totiž schramstne poměrně dost prostředků.



↑ votrelec1995:
Předpokládám, že proti tomu protestoval už překladač, ten cyklus je divný již syntakticky. Faktoriál z čísla n cyklem for vypočítáš strašně jednoduše:

Code:

   ...v n máš číslo, jehož faktoriál chceš zjistit
   if (n>=0) //faktoriál jde jen z nezáporných
    {
       for(f=1, i=2; i<=n; f=f*i, i++);  // pokud to chces splacnout do jednoho radku pomoci operatoru carka
       ...nyní máš v f faktoriál n
    }

Доктор сказал «в морг» — значит в морг!

Offline

 

#4 05. 11. 2013 15:06 Příspěvek uživatele Google byl skryt uživatelem Google.

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson