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