x = 2 n = -3
Result = 0.125 Recursion depth = 3
#include <stdio.h>
/* Recursive power function */
double power(double x, int n, int depth) {
printf("Recursion depth %d: power(%.2f, %d)n", depth, x, n);
/* Base case */
if (n == 0)
return 1;
/* Negative power */
if (n < 0)
return 1 / power(x, -n, depth + 1);
/* Positive power */
return x * power(x, n - 1, depth + 1);
}
int main() {
double x;
int n;
printf("Enter value of x: ");
scanf("%lf", &x);
printf("Enter value of n: ");
scanf("%d", &n);
double result = power(x, n, 1);
printf("nResult: %.2f^%d = %.5fn", x, n, result);
return 0;
}
#include <stdio.h>
/* Recursive power function */
double power(double x, int n, int depth) {
printf("Recursion depth %d: power(%.2f, %d)n", depth, x, n);
/* Base case */
if (n == 0)
return 1;
/* Negative power */
if (n < 0)
return 1 / power(x, -n, depth + 1);
/* Positive power */
return x * power(x, n - 1, depth + 1);
}
int main() {
double x;
int n;
printf("Enter value of x: ");
scanf("%lf", &x);
printf("Enter value of n: ");
scanf("%d", &n);
double result = power(x, n, 1);
printf("nResult: %.2f^%d = %.5fn", x, n, result);
return 0;
}