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;
}
Respostas
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.