Ir ao conteúdo
  • Cadastre-se

Linguagem c while


Alan Lima29
Ir à solução Resolvido por Pedro Math.pi,

Posts recomendados

  • Membro VIP

Bom dia. Temos exemplos em C com while aqui.

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

 

http://forum.clubedohardware.com.br/forums/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.

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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/

Link para o comentário
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);
 
 
 
 
}
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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