Mi sapete dire perchè nel seguente semplicissimo programma


codice:
#include <stdio.h>
#include <stdlib.h>



double base,output;
int el;
double pot(double num, int esp);	
  	
main(void) {
printf("Dammi il numero");
scanf("%f", &base);
printf("Dammi esponente");
scanf("%d", &el);
output=pot(base,el);

printf("%f", output);

system("pause");
}

double pot(double num, int esp) {
double po;
po=1;

if (esp==0)return(1);

else {
while(esp--) po=po*num; ;
return(po);
     }
                                 }
se l'esponente è diverso da 0 l'output è sempre 0?