#include double sqr(double); int even (int); int odd (int); double power(double number, int pow){ double result; printf("power(%lf,%i)\n", number, pow); if (pow == 0) result = 1.0; else if (pow > 0 && even(pow)) result = sqr(power(number,pow/2)); else if (pow > 0 && odd(pow)) result = number * power(number, pow - 1); else result = 1.0 / power(number, -pow); return result; } int main(void) { double number; int pow; do{ printf("Enter number and pow in power(number,pow). 0 0 terminates: "); scanf("%lf %i", &number, &pow); printf("power(%f,%i) = %f\n", number, pow, power(number,pow)); } while (number != 0.0 || pow != 0); return 0; } double sqr(double d){ return d*d;} int even (int i){ return i % 2 == 0;} int odd (int i){ return i % 2 != 0;}