0
respostas

Fiz dessa forma

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: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Acho que vale a pena ficar fazendo esses testes e brincando com o programa para fixar o aprendizado.