Informática, perguntado por gabrielaksantos1, 1 ano atrás

Looping infinito é um nome dado a uma sequência de repetições sem fim. Pode ser usado como um recurso para um sistema que deve ficar sempre em execução repetindo tarefas ou pode levar a erros e travamento do sistema. Veja o código abaixo.

1 #include
2
3 int main() {
4 int n, fat;
5
6 printf("Escreva um número inteiro:");
7 scanf("%d", &n);
8 fat = 1;
9
10 while (n > 1) {
11 fat = n * fat;
12 }
13 printf("Resultado: %d\n", fat);
14 return 0;
15 }

Considerando o código acima, temos diferentes formas de evitar o looping infinito. Assinale a afirmativa que evita o looping infinito, sem prejudicar o cálculo do fatorial.

Alternativas

Alternativa 1:
Abaixo da linha 11, incluir a instrução "n--".

Alternativa 2:
Acima da linha 11, incluir a instrução "n = n - 1".

Alternativa 3:
Abaixo da linha 11, incluir a instrução "if (n > fat) { break }".

Alternativa 4:
Na linha 10, trocar o conteúdo da linha por "for (int i = 0; i < n; i++) {".

Alternativa 5:
Na linha 10, trocar todo o conteúdo por "do {" e todo o conteúdo da linha 12 por "} while (n == 1);".

Soluções para a tarefa

Respondido por Eggcellent
8
Correta:
Alternativa 1:
Abaixo da linha 11, incluir a instrução "n--".

Erros:
Alternativa 2: O programa vai começar de n-1 e retornar um resultado errado para a fatoração.
Alternativa 3: A variável n nunca será maior que fat.
Alternativa 4: Embora remova o loop, não há a subtração dos termos, assim, o fatorial não será efetuado corretamente.
Alternativa 5: Ele vai efetuar apenas uma operação.
Perguntas interessantes