El problema esta en que no puedo usar la librería libreria math.h 
sino que tengo que usar el archivo .h que me dan que contiene:
- #ifndef POTENCIA_H 
- #define POTENCIA_H 
-   
- /*Textos a utilizar en la funcion printf*/ 
- #define T_BASE              "BASE:\n" 
- #define T_EXPONENTE         "EXPONENTE:\n" 
- #define T_RESULTADO         "%d elevado a %d es %d\n" 
- ... 
Honestamente como ejemplo del uso de macros en C es, de parte de tu profesor, uno muy malo.
El objetivo de las macros es hacer el código fuente mas claro y fácil de seguir y, por ello, menos propenso a los errores. Considerando eso ultimo si comparamos:
-   
- printf("%d elevado a %d es %d\n",-  a ,-  b ,-  c );
 
Resulta obvio que es mas difícil detectar errores en la llamada que utiliza la macro "T_RESULTADO" que en la que utiliza la literal.
El problema esta en que solo realiza printf y scanf todo el rato , para solucionarlo ¿podría introducir un blucle do-while no?
Correcto, debes cambiar el proceso de uno recursivo a uno iterativo. También hay que cambiar la función eliminando los parámetros y cambiando su tipo de retorno a "void".
El programa con las correcciones:
- #include <stdio.h> 
-   
- void potencia(void); 
-   
- int main(void) 
- { 
-    potencia(); 
-   
-    return 0; 
- } 
-   
- void potencia(void) 
- { 
-    int x; 
-    int y; 
-    long pot; 
-   
-   
-    puts("Indica el exponente:"); 
-   
-    pot = 1; 
-    while (y-- > 0) 
-       pot *= x; 
- } 
Edito: el uso de las macros te toca a ti. En buen plan: yo no las toco ni con un palito.
Un saludo