Eu tive dificuldade nesse exercício, porque fiquei testando o código, removendo os *
e os &
dos parâmetros para ver se funcionava sem, mas recebia erros por causa dos tipos de dados distintos. Acredito que é porque a função pow()
trabalha com valores double
, ao invés de int
. Acabou que meu código funciona e compila porque utilizei as mesma variáveis criadas na função main()
. Com isso, o programa não irá criar outras variáveis dentro da função potencia()
. Correto?
#include <stdio.h>
#include <math.h>
int potencia(int* resultado, int* base, int* expoente) {
(*resultado) = pow(*base, *expoente);
return (*resultado);
}
int main() {
int base, expoente, resultado;
printf("Digite o valor da base: ");
scanf("%d", &base);
printf("Digite o valor do expoente: ");
scanf("%d", &expoente);
resultado = potencia(&resultado, &base, &expoente);
printf("%d ^ %d = %d\n", base, expoente, resultado);
}
Terminal:
Acho que vale a pena ficar fazendo esses testes e brincando com o programa para fixar o aprendizado.