Ir ao conteúdo
  • Cadastre-se
Alan Lima29

RESOLVIDO Linguagem c while

Recommended Posts

Pessoal alguém consegue me ajudar nesse exercício?

 

Construa um algoritmo em linguagem c que calcule o fatorial de um número usando while. Deve-se aparecer para o usuário digitar um número e depois mostrar o resultado das multiplicações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia. Temos exemplos em C com while aqui.

http://forum.clubedohardware.com.br/topic/1114551-d%C3%BAvida-linguagem-c/

 

http://forum.clubedohardware.com.br/topic/1113498-d%C3%BAvida-exerc%C3%ADcio-na-linguagem-c/

 

Mas pra resolver essa questão você tem que entender como calcular o fatorial.

http://www.matematicadidatica.com.br/Fatorial.aspx

 

Nesse caso, você pode usar um while (numero != 0)

E decremente esse número dentro do while: numero = numero -1


Tente fazer e mostre como ficou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código ficou assim:

 

#include <stdio.h>
 
void main ()
 
{
    int n, d, mult;
 
    printf("Digite um numero: ");
    scanf(" %d", &n);
 
 
 
    while (n>=1)
    {
 
 
 
        mult = n * n;
        printf(" X %d ", n);
        n = n-1;
 
    }
    printf(" = %d", mult);
 
 
 
 
}
 
 
Só que o resultado nao ta dando certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

mult = n*n ?

 

multi deve receber ele mesmo multiplicado pela próxima sequência e deve ser inicializado em 1 quando declarado.

 

mult = multi * n;


Esse código é muito fácil de achar na internet, além de ser fácil de fazer.

http://blog.masterdaweb.com/programacao-1/linguagem-c/calculando-fatorial-em-c/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz do jeito que você falou e deu certinho:

 

Eu tinha feito mult = mult*n anteriormente só que mesmo assim o resultado não tava batendo. Então fiz como você falou --- mult = 1;
 
Deu certo dessa forma. Só não entendi a lógica, porque quando eu delcarei 1 ele deu certo?
 
 
 
 
#include <stdio.h>
 
void main ()
 
{
    int n, d, mult = 1;
 
    printf("Digite um numero: ");
    scanf(" %d", &n);
 
 
 
    while (n>=1)
    {
 
 
 
        mult = mult * n;
        printf(" X %d ", n);
        n = n-1;
 
    }
    printf(" = %d", mult);
 
 
 
 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Alan Lima29

Use o teste de mesa.

 

Imagine você achar o fatorial de 5!

Ele tem que fazer: 5 x 4 x 3 x 2 x 1.

 

Enquanto isso o multi está lá, sem inicialização. Teoricamente ele vale 0.

Você vai pegar o primeiro número (5) e multiplicar por 5.

multi = multi * n

multi = 0 * 5 = 0

 

Qualquer número multiplicado por 0 dará 0. Por isso, deve-se inicializar mult com 1.

multi = multi * n

multi = 1 * 5 = 5

multi = 5 * 4 = 20

multi = 20 * 3 = 60

multi = 20 * 2 = 120

multi = 120 * 1 = 120

sai do while

 

Tente sempre reproduzir no papel os passos do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×