Solução em C do Problema 4

/* 
 * SOLUCAO ERRADA tipica.  
 */

#include <stdio.h>

int main() {
  int x,         /* base                          */ 
      n,         /* expoente                      */
      i;         /* numero de multiplicoes feitas */

  /* Inicializacoes */
  printf("\n\tCalculo de potencias\n");
  printf("Digite a base (inteiro): ");
  scanf("%d", &x);
  printf("Digite o expoente (inteiro nao-negativo): ");
  scanf("%d", &n);
  
  i = 0;
  
  /* Calculo da potencia */
  while (i < n) {
    x = x * x;
    i = i + 1;
  }
  
  printf("\nO valor de %d elevado a %d= %d\n", x, n, x);
  return 0;
}


/* 
 *  SOLUCAO CERTA. 
 */

#include <stdio.h>

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


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br