Scusa ma la funzione che hai scritto tu è come se ripetesse y volte n al quadrato..
devi inserire dei casi.. un numero elevato alla 0 fa sempre 1, un numero elevato alla 1 da se stesso..
2^4 si fa -> 2*2=4 4*2=8 8*2=16
si moltiplica il risultato x la base y volte..
ecco il codice che dovrebbe funzionare
#include <stdio.h>
int pot (int,int);
int pot (int x, int y)
{
int i; /*contatore per la moltiplicazione*/
int z=0;
if(y==0) return 1;
if(y==1) return x;
else
{
z=x*x;
for (i=3; i<=y; i++) z=z*x; /* moltiplica x per x tante volte quanto e' il valore di esp.*/
return z;
}
}
int main ()
{
int base,esp;
printf("immettere base ed esponente: ");
scanf("%d%d", &base,&esp);
printf("\n%d elevato a %d fa: %d",base,esp,pot(base,esp));
getch();
return 0;
}