Ir ao conteúdo
  • Cadastre-se

C Programa não compila calculo fatorial n


Posts recomendados

Escreva uma função que computa o fatorial de um número n passado por parâmetro. Sua função deve ter o seguinte protótipo: long fat(long n); OBS: Caso n ≤ 0 seu programa deve retornar 1.

#include <stdio.h>

    long long fat(long n)
    {
        int i, fatototal;
        if (fato <= 1){

            fatototal=1;
        }
        else{
        fatototal=2;
        for(i=3; i <= fato; i++)
        {
            fatototal= i * fatototal;
        }
        }
        return fatototal;
        if (n<=0){
        return 1;
    }

 

Link para o comentário
Compartilhar em outros sites

Estão sobrando um return e chaves de fechamento e você não seguiu o tal protótipo "long fat(long n)".

 

Jeito mais simples:

long fat(long n) {
    long fa = 1;
    for (long c = 2; c <= n; c++)
        fa *= c;
    return fa;
}

 

Teste da função:

#include <stdio.h>

long fat(long n);

int main() {
    printf("0 fatorial = %ld\n", fat(0));
    printf("1 fatorial = %ld\n", fat(1));
    printf("2 fatorial = %ld\n", fat(2));
    printf("5 fatorial = %ld\n", fat(5));
    printf("7 fatorial = %ld\n", fat(7));
    return 0;
}

long fat(long n) {
    long fa = 1;
    for (long c = 2; c <= n; c++)
        fa *= c;
    return fa;
}

 

Link para o comentário
Compartilhar em outros sites

12 horas atrás, JorgeGus disse:

Estão sobrando um return e chaves de fechamento e você não seguiu o tal protótipo "long fat(long n)".

 

Jeito mais simples:


long fat(long n) {
    long fa = 1;
    for (long c = 2; c <= n; c++)
        fa *= c;
    return fa;
}

 

Teste da função:


#include <stdio.h>

long fat(long n);

int main() {
    printf("0 fatorial = %ld\n", fat(0));
    printf("1 fatorial = %ld\n", fat(1));
    printf("2 fatorial = %ld\n", fat(2));
    printf("5 fatorial = %ld\n", fat(5));
    printf("7 fatorial = %ld\n", fat(7));
    return 0;
}

long fat(long n) {
    long fa = 1;
    for (long c = 2; c <= n; c++)
        fa *= c;
    return fa;
}

 

Esse algoritmo não computa quando o fatorial é n<=0. Agora buguei aqui.

Escreva uma função que computa o fatorial de um número n passado por parâmetro. Sua função deve ter o seguinte protótipo: long fat(long n); OBS: Caso n ≤ 0 seu programa deve retornar 1.

Link para o comentário
Compartilhar em outros sites

18 horas atrás, paulo luz magalhaes disse:

Esse algoritmo não computa quando o fatorial é n<=0. Agora buguei aqui.

Escreva uma função que computa o fatorial de um número n passado por parâmetro. Sua função deve ter o seguinte protótipo: long fat(long n); OBS: Caso n ≤ 0 seu programa deve retornar 1.

É só fazer a validação no main antes de chamar a função e retornar 1 no return do main, mas a princípio, isso só deveria ocorrer com inteiros negativos porque 0 fatorial é por definição 1.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!