1
resposta

[Resposta] Função potencia com ponteiro

#include <stdio.h>

int potencia(int* resultado, int a2, int b2){
    (*resultado) = 1; 
    while (b2 > 0){
        (*resultado) *= a2;
        b2--;
    }
    return (*resultado);
}

int main(){
    int a = 10, b = 5, resultado;
    printf("O resultado de %d elevado a %d = %d\n", a, b, potencia(&resultado, a, b));
    return 0;
}
1 resposta

Olá, João!

O seu código está correto e faz o cálculo da potência corretamente.

Na função potencia, você está passando o endereço de memória da variável resultado para a função, utilizando o operador &. Isso permite que a função modifique o valor da variável resultado diretamente na memória.

Dentro da função, você utiliza o operador * para desreferenciar o ponteiro e acessar o valor da variável resultado. Assim, você consegue realizar as operações de potenciação corretamente.

No main, você chama a função potencia passando o endereço de memória da variável resultado utilizando o operador &. Dessa forma, a função consegue modificar o valor da variável resultado diretamente na memória.

No final, você imprime o resultado utilizando printf, passando os valores de a, b e resultado.

Se você executar esse código, ele irá calcular corretamente a potência de a elevado a b e imprimir o resultado.

Bons estudos!