Ir ao conteúdo

Posts recomendados

Postado

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;
    }

 

Postado

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;
}

 

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

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!