yatta! it only took me FOREVER, but I figured it out all on my own. isn't it a proud feeling? Using a function made it so much easier. Any advice?
Code:
//8:Redo exercise 7, but this time use a recursive function.
#include<stdio.h>
double power(double, int);
double neg_power(double, int, double);
int main(void) {
double x, xpow;
int exp;
printf("Enter a number and the positive integer power");
printf(" to which\nthe number will be raised. Enter q");
printf(" to quit.\n");
while (scanf("%lf %d", &x, &exp) == 2) {
xpow = power(x,exp);
printf("%.3g to the power %d is %.5g\n", x, exp, xpow);
printf("Enter next pair of numbers or q to quit.\n");
}
printf("Hope you enjoyed this power trip -- bye!\n");
return 0;
}
double power(double num, int pow) {
int count;
float ans = 1;
if (pow == 0)
//a number with power of 0 = 1
ans = 1;
else if (num == 0)
//number with power 0 = 0
ans = 0;
else if (pow < 0)
//negative powers
ans = neg_power(num, pow, ans);
else {
//positive powers
for (count = 1; count <= pow; count++)
ans *= num;
}
return ans;
}
double neg_power(double number, int neg_pow, double answer) {
if (neg_pow < 0)
//use recursion to solve for negative powers.
answer = 1/number * neg_power(number, neg_pow + 1, answer);
return answer;
}