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
#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
V tom tvojom mi príde ten "for" nejak divno zapísaný, ak chceš tu máš jeden spôsob čo používam:
#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;
}Offline
↑ 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:
...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