#include <stdio.h>
void power(double *x, int *exp, double *xpow, int *i);

int main(){
    double x, xpow;
    int exp, i;
    i = 1;

    printf("Write: num pow\t(q for exit)\nWrite: ") ;

    while (scanf(" %lf %d", &x, &exp) == 2){
        if ((x == 0) && (exp == 0)){
            printf("Result of 0 in pow 0 is undefind\n");
        }
        else if(exp == 0){xpow = 1;}
        else({
            xpow = x;
            power(&x,&exp,&xpow,&i);
        });
    if ((x != 0)||(exp != 0)){
        printf ("%.2lf в степени %d равно %lf\n", x, exp, xpow);}
        printf("Write: ");
    }
    return 0;
}

void power (double *x, int *exp, double *xpow, int *i){
    if(*i<*exp){
        *xpow = (*xpow * *x);
        (*i)++;
        power(x, exp, xpow, i);
    }else({
        if (*exp<0) *xpow = (1 / *xpow);
        (*i) = 1;
    });
}
