Ir ao conteúdo

Gostaria de saber por que minha função recursiva não funciona !?


andrws

Posts recomendados

Postado

int fatorial (int n);

main(){

int n,fat;

printf("Digite um numero para calcular o fatorial");

scanf("%d",n);

fat=fatorial(n);

printf("%d",fat);

getch();}

int fatorial (int n)

{

if ((n==1)||(n==0)) return 1

else return n*fatorial(n-1)

}

Uso dev c no windows :mellow:

Postado

Com exceção da falta de ';' no final dos comandos, não há erros!

Eu escreveria a função da seguinte maneira:

int fatorial (int n)

{

if (n == 0)

return 1;

else

return (n * fatorial(n - 1));

}

  • Membro VIP
Postado
int fatorial (int n)

{

if ((n==1)||(n==0)) return 1

else

for(int a=n;a>0;--a)

n*=a;

return n;

}

Tirando o fato de essa implementação não ser recursiva,ela é muito mais eficiente que a recursiva.Considere apenas como modo didático de aprender recursão a implementação do fatorial recursivo.Abraços.

Postado

Peraê. Percebi um erro no seu código. Ao invés de:

scanf("%d",n);

O correto é:

scanf("%d",&n);

Mas a recursão da função fatorial está codificada certa. É assim mesmo que se codifica.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!