Thanks for all the help. I did see where I made it way to large. Learned
that x = abs(x); replaces:
        if ( x < 0)
                x = x * -1

and saw that the little thing which calculates pow will default to 1 so
didn't need the lines 
        if ( x == 0)
                return 1;

Here is what I wound up with. I'm sure many see it as far too wordi and
long and spread out. I do this with malas and forthought. I fought tiny
little files while developing missles. I asked, if it is right why hide
it?

/* raises numbers to integer powers */
#include <stdio.h>
double power(double num, int exp); 
int main(void)
{
        double num, xpow;
        int exp;
        
        printf("Enter a number and the positive integer power to which\n"
                "the power will be raised. Enter q to quit.\n");
        while(scanf("%lf%d", &num, &exp) == 2)
        {
                xpow = power(num, exp);;
                printf("%.3e to the power %d is %.3e\n", num, exp, xpow);
        }
        return 0;
}
double power(double num, int exp)
{
        double pow = 1.0;
        int i, b;
        
        if ( num == 0 )
                return 0;
        b = abs(exp);
                for( i=1; i <= b; i++)
                        pow = pow * num;
        if ( exp < 0)
                return 1 / pow;
        else
                return pow;
                        
}



Best wishes 

   - Karl F. Larsen, 3310 East Street, Las Cruces,NM (505) 524-3303  -

Reply via email to