Ir ao conteúdo
  • Cadastre-se

C Problema ao calcular Fatorial de um número em C


Ir à solução Resolvido por Aoi Todo,

Posts recomendados

Eu preciso fazer um programa em C para a faculdade e deve calcular o fatorial de um número e exibi-lo, até ai tudo bem, eu consigo calcular o fatorial, mas preciso exibi-lo com uma mensagem informativa EX: o fatorial de 4 é 24 e logo abaixo como sua notação matemática EX: !4 = 4.3.2.1 = 24, eu consigo efetuar o calculo mas exibe sempre: o fatorial de 1 é 24, independente de qual seja o numero informado sempre vai aparecer "1", e não consigo exibir a notação matemática,

meu código:

#include <stdio.h>

int main ()
{
        int A=0, fat=0;
        printf("\n");
        printf("**O fatorial de um número natural é o produto\n desse número por todos os menores**");
        printf("\nDigite aqui o número para calcular seu fatorial: ");
        scanf("%d", &A);
        for (fat = 1; A>1; A = A-1)
        {
            fat = (fat*A);
        }
        printf("O fatorial de %d é %d.", A, fat);
}

 

problema.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Isso ocorre porque você está modificando o valor inicial de A, cada vez que ele é decrementado no for pelo " A-1"

Um jeito simples de resolver é salvar o valor em duas variáveis, da seguinte forma:

#include <stdio.h>

int main ()
{
        int A=0, fat=0;
  		int auxiliar;
        printf("\n");
        printf("**O fatorial de um número natural é o produto\n desse número por todos os menores**");
        printf("\nDigite aqui o número para calcular seu fatorial: ");
        scanf("%d", &A);
  		auxiliar = fat;
        for (fat = 1; A>1; A = A-1)// aqui você esta modificando o valor de A
        {
            fat = (fat*A);
        }
        //printf("O fatorial de %d é %d.", A, fat);/ printf antigo
  
  		printf("O fatorial de %d é %d.", auxiliar, fat);// novo printf
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Arthur Vandellay Eu fiz da maneira que explicou e agora aparece sempre : o fatorial de 0 é 120 (usando 5 como exemlpo),

independente do número que coloco vira sempre 0.

adicionado 3 minutos depois

@Arthur Vandellay  Eu consegui consertar estabelecendo o o valor de auxiliar com A

 

auxiliar = A;

 

adicionado 4 minutos depois

@Arthur Vandellay Mas sua resposta acabou por me ajudar muito, obrigado 😀

adicionado 8 minutos depois

Mas agora eu tenho outra duvida, preciso apresentar embaixo dessa mensagem, a notação matematica sendo ela

5! é igual a 5.4.3.2.1 é igual a 120. (sendo o fatorial de 5)

 como posso exibir essa mensagem logo abaixo da: "O fatorial de %d é %d"?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

Haha eu tinha escrito erra desculpa por isso

 

Pra fazer isso, você pode fazer um "for", igual o que você usou para calcular o fatorial. Tipo isso:

 

printf( "%d! é igual a ", auxiliar);
for ( A = auxiliar ; A>= 1 ; A--)// auxiliar-- é o mesmo que auxiliar = auxiliar - 1
{
	printf("%d.", A );// isso sera o 5.4.3.2.1
{
printf(" é igual a %d", fat );

 

  • Curtir 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!