Faça um programa que lê um número real do teclado e utilizando o comando “while” calcula o fatorial deste número. (ex: 5! é igual a 5 * 4 * 3 * 2 * 1 ).

Passo 1

O enunciado pede um programa que leia um número real, converta-o em inteiro (já que fatorial é definido para inteiros não-negativos) e calcule o fatorial desse inteiro usando um laço while. O conteúdo envolve controle de fluxo e estruturas de repetição em programação.

Passo 2

Precisamos capturar a entrada do usuário como um número real, converter para inteiro (por exemplo, truncando a parte decimal) e verificar se esse inteiro é não-negativo. Se for negativo, podemos exibir uma mensagem de erro ou tratar como caso especial.

Passo 3

Declaramos uma variável para armazenar o fatorial (inicializando em 1) e um contador i que começa em 1. Vamos usar while (i <= n) para multiplicar o fatorial por i a cada iteração e depois incrementar i.

Passo 4

No laço while, realizamos
\text{fatorial} = \text{fatorial} \times i
e em seguida fazemos i = i + 1. Quando i ultrapassar o valor de n, o laço termina e teremos o resultado.

Passo 5

Por fim, imprimimos o valor calculado de fatorial.

Resposta

#include <stdio.h>

int main() {
 double x;
 printf("Digite um número real: ");
 scanf("%lf", &x);

 int n = (int)x; // converte truncando
 if (n < 0) {
 printf("Fatorial não definido para números negativos.
");
 return 1;
 }

 long long fatorial \(=1\);
 int i \(=1\);
 while (i <= n) {
 fatorial *= i;
 i\(++\);
 }

 printf("%d! = %lld
", n, fatorial);
 return 0;
}

Exercícios relacionados