Greetings all.

I am running into an issue with a program I am working with. In the power function everything seems to be working but it returns some funky value.

Any help would be great.

Code:

#include <stdio.h>
#include <math.h>
void run(void);
int getnumb2(void);
int getnumb1(void);
int power( int semisol, int number, int to );
int main(){
run();
return (0);
}
void run(void){
int x, y, answer;
printf("\nThis program will take a number and an exponent. For example, the program will preform x to the power of y.");
x=getnumb1();//gets the first the number; the base
y=getnumb2();//gets the exponent
answer=power(x, x, y);//a recursive function that solves the equation//
printf("\n%d to the power of %d is %d\n\n\n",x,y,answer);
}
int getnumb1(void){//gets the first the number; the base
int x;
printf("\nPlease enter a value for x: ");
scanf("%d",&x);
return x;
}
int getnumb2(void){//gets the exponent
int y;
printf("\nPlease enter a value for y: ");
scanf("%d",&y);
return y;
}
int power(int semisol, int number, int to){//a recursive function that solves the equation/ x to the power of y or 'number' to the power of 'to'
if (to==0){
semisol=1;
printf("test of zero");//tst lones
return semisol;
}
else if (to==1){
printf("%d %d",to,semisol);//test line only
printf(" test of one ");//test line only
return semisol;
}
else if (to>1){
printf("%d %d",to,semisol);//test line only
printf(" Stop ");//test line only
semisol= semisol * number;
to = to - 1;
power(semisol, number, to);
}
}