Meu programa imprimia o resultado 0 quando apertava enter e quando o script estava assim(continua depois do código):
#include <stdio.h>
int expoente(int* a, int* b, int* re, int* i){
for(i = 0; i < b; i++){
(*re) = (*re)*(*a);
}
return (*re);
}
int main(){
int re = 1;
int a,b,i;
printf("Digite o numero e seu expoente: \n");
scanf("%d%d", &a,&b);
expoente(&a,&b,&re,&i);
printf("O resultado eh: %d\n", re);
}
Mas agora, fiz uns ajustes e o programa rodou normal. Gostaria de saber porque não deveria utilizar ponteiro em A e B para realizar a operação proposta pela função exponencial. Segue o código modificado:
#include <stdio.h>
int expoente(int a, int b, int* re){
for(int i = 0; i < b; i++){
(*re) = (*re)*(a);
}
return (*re);
}
int main(){
int re = 1;
int a,b;
printf("Digite o numero e seu expoente: \n");
scanf("%d%d", &a,&b);
expoente(a,b,&re); //Porque usar ponteiro apenas em "re"?
printf("O resultado eh: %d\n", re);
}