Informática, perguntado por MecBattleborn, 5 meses atrás

Duvida em um código simples em C!

A minha duvida é a partir do while, porque eu preciso incrementar +1 com a variável contado se é uma multiplicação?!

O ultimo comando dentro do while que vale para o numero de repetições?

#include

int main() {
int x, /* base */
n, /* expoente */
potencia, /* guarda as potencias parciais */
contador;

printf("\n\tCalculo de potencias\n");
printf("\nDigite um numero inteiro: ");
scanf("%d", &x);
printf("Digite um numero um inteiro nao-negativo: ");
scanf("%d", &n);

/* Inicializacoes */
potencia = 1;
contador = 0;

/* Calculo da potencia */
while (contador < n) {
potencia = potencia * x;
contador = contador + 1;
}

printf("\nO valor de %d elevado a %d: %d\n", x, n, potencia);
return 0;
}

Soluções para a tarefa

Respondido por matheusnascimento20
1

Explicação:

bem esse tipo de problema pode ser resolvido de várias formas, como você está usando um a variável de controle, é necessário usar o incremento embaixo, se não seu código vai entrar em loop infinito, visto que a condição sempre será verdadeira.

contador inicia com 0, observe, se não tivesse a interação abaixo, no segundo cálculo o valor de contador ainda seria 0, imagina ficar assim até chegar no valor da potência, como você faria para parar o programa ?

"O papel da variável contador é controlar a quantidade de repetições"

A variável potencia só está sendo acumulada, mas observe que ela não está sendo verificada na condição do while, por isso é necessário uma variável de controle, ou seja enquanto contador for menor que n, faça esses procedimentos. Se contador inicia com 0 ele precisa de incremento para que haja a verificação sempre, ou então 0 será sempre menor que n e seu código nunca vai encerrar.

Espero que tenha entendido.


MecBattleborn: Muito obrigado, nao estava entendendo nada mas agora consegui pegar! vlw
matheusnascimento20: bons estudos amigo.
Perguntas interessantes