Understanding the Power Function in C/C++

Filed Under: C Programming
Power C Cpp(5)

In this article, we’ll take a look at understanding the power function in C / C++.

The power function computes the power of a base, raised to an exponent number.

Let’s look at this function in a bit more detail, using some examples.


Basic Syntax of the Power function in C/C++

The pow() function takes in a base number and an exponent number, and returns the value base^(exponent).

All of these values are of the type double.

Also, this function is a part of the <math.h> header file, so we must import it first.

#include <math.h>

double pow(double base, double exponent);

In case we give an incorrent range for the input, we will get a NAN result.

For example, if base is a negative finite value, and exponent is a finite non-integer, we will get a domain error, since the decimal power of a negative number is a complex number, which is not in the scope of C datatypes.

Let’s take a look at some examples now.


Using the Power function in C / C++ – Some Examples

Let’s take two integers first, and find the power of them.

#include <stdio.h>
#include <math.h>

int main() {
    int base = 3;
    int exponent = 5;

    int result = (int) pow(base, exponent);

    printf("Base = %d, Exponent = %d, Result = %d\n", base, exponent, result);

    return 0;
}

Output

Base = 3, Exponent = 5, Result = 242

As you can see, pow() did compute 3^5 = 243.

Let’s check it for floating point numbers now.

#include <stdio.h>
#include <math.h>

int main() {
    double base = 3.45;
    double exponent = 5.6;

    double result = pow(base, exponent);

    printf("Base = %.4lf, Exponent = %.4lf, Result = %.4lf\n", base, exponent, result);

    return 0;
}

Output

Base = 3.4500, Exponent = 5.6000, Result = 1027.5121

Indeed, it seems to work with floating point exponents and bases as well!

Let’s take another example, which will give us a NAN result.

include <stdio.h>
#include <math.h>

int main() {
    double base = -1;
    double exponent = 5.6;

    double result = pow(base, exponent);

    printf("Base = %.4lf, Exponent = %.4lf, Result = %.4lf\n", base, exponent, result);

    return 0;
}

Output

Base = -1.0000, Exponent = 5.6000, Result = -nan

Here, since -1^5.6 is a complex number, it will become a nan value! So you must be very careful to ensure that your input and output aren’t nan values!


Conclusion

We learned about using power() in C / C++, which is useful to compute the mathematical power of a base, to an exponent.

For similar content, do go through our tutorial section on C programming!

References


Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages