#include<stdlib.h>
#include<stdio.h>
int main(void){
int fatorial(int x);
int numero,resultado;
printf("digite um numero inteiro");
scanf("%d", &numero);
printf("o fatorial eh %d",resultado);
resultado = fatorial(numero);
system("pause");
return 0;
}
int fatorial(int x){
int resultado;
if(x==0);{
resultado=1;
} else
}
{
resultado=x*fatorial(x-1);
return resultado;
}
Já achei vários erros no código. Só uma pergunta, você tem mesmo que usar Chamada Recursiva? Por que não faz esse algoritmo pelo método iterativo?
TENTE USAR ESTE CÓDIGO:
#include <stdio.h>
int main()
{
int n;
int ret = 0;
printf("DIGITE UM NUMERO INTEIRO: ");
scanf("%d",&n);
ret = fatorial(n);
printf("O FATORIAL DE %d EH: %d ",n, ret);
}
int fatorial (int n)
{
if(n==1)
return n;
return fatorial(n-1) * n;
}
Bom dia Ana, tudo bem?
Como o nosso colega Ivan disse, o código realmente apresenta alguns erros de lógica. Vou tentar te explicar alguns.
Você declarou a função int fatorial depois do int main, coloque a função antes.
Dentro da função Int main você:
#include <stdio.h>
#include <stdlib.h>
float fatorial(const int x) {
if( x <= 1 )
return 1;
return fatorial(x-1) * x;
}
int main(void) {
int n;
printf("Digite um numero:\n");
scanf("%d",&n);
printf( "O fatorial de %d e %-5.0f\n", n, fatorial(n));
system("PAUSE");
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar