In C language, the pow() function is defined in the <math.h> header file and is used to calculate the exponent value of x raised to the power of y, i.e., xy. Basically, in C, the exponent value is calculated using the pow() function.
Example:
C
#include <stdio.h>
// Include math.h for the pow() function
#include <math.h>
int main() {
double base = 5, exponent = 3, result;
// Calculate the result of base
// raised to the power of exponent
result = pow(base, exponent);
// Output the result
printf("%.0f raised to the power of %.0f is %.0f\n", base, exponent, result);
return 0;
}
Output5 raised to the power of 3 is 125
pow() in C
To use the pow() function in our program we need to include the <math.h> in our C program. The pow() function takes a double as input and returns a double as output. The pow() function has 3 different overloads that return values in double, float or long double based on the data type of input values.
Syntax
C
//takes double as input and returns double
double pow(double base, double exponent);
//takes float as input and returns float
float pow(float base, float exponent);
//takes long double as
// input and returns long double
long double pow(long double base,
long double exponent);
Parameters
- x: base value
- y: exponent value
Return Value
- The power function may return the double value , floating point value, or long double value of x raised to the power y ( x y ) based on the values of x and y.
Examples Using pow() Function
C
#include <stdio.h>
#include <math.h>
int main()
{
//taking double as input
double x = 6.176, y = 4.832;
printf("%f raised to power of %f is %f\n", x, y, pow(x, y));
//taking float as input
float a = 3.14, b = 2.58;
printf("%f raised to power of %f is %f\n", a, b, pow(a, b));
//taking long double as input
long double p = 2.1591, q = 2.8642;
printf("%Lf raised to power of %Lf is %f\n", p, q, pow(p, q));
return 0;
}
Output6.176 raised to power of 4.832 is 6617.56
3.14 raised to power of 2.58 is 19.146
2.1591 raised to power of 2.8642 is 9.06617
pow() Function with Integers
The pow() function takes 'double' as the argument and returns a 'double' value. This function does not always work properly for integers. One such example is pow(5, 2). When assigned to an integer, it outputs 24 on some compilers and works fine for some other compilers. But pow(5, 2) without any assignment to an integer outputs 25.
One another way can be using the round function to assign it to some integer type.
- This is because 52 (i.e. 25) might be stored as 24.9999999 or 25.0000000001 because the return type is double. When assigned to int, 25.0000000001 becomes 25 but 24.9999999 will give output 24.
- To overcome this and output the accurate answer in integer format, we can add 1e-9 or 0.000000001 to the result and typecast it to int e.g (int)(pow(5, 2)+1e-9) will give the correct answer(25, in the above example), irrespective of the compiler.
Example 1: C Program to demonstrate the behavior of the pow() function with integers.
C
// C program to illustrate
// working with integers in
// power function
#include <math.h>
#include <stdio.h>
int main()
{
int a, b;
// Using typecasting for
// integer result
a = (int)(pow(5, 2) + 1e-9);
b = round(pow(5,2));
printf("%d \n%d", a, b);
return 0;
}
Time Complexity: O(log(n))
Auxiliary Space: O(1)
Similar Reads
clock() function in C The clock() function in C returns the approximate processor time that is consumed by the program which is the number of clock ticks used by the program since the program started. The clock() time depends upon how the operating system allocates resources to the process that's why clock() time may be
2 min read
exp2() function in C++ STL The exp2() is a builtin function in C++ STL that computes the base-2 exponential function of a given number. It can also be written as 2num. Syntax: exp2(data_type num) Parameter: The function accepts a single mandatory parameter num which specifies the value of the exponent. It can be positive, neg
2 min read
C Library - exp() Function In C programming language, the exp() function is a built-in function of <math.h> library which is used to calculate the value of e (Euler's Number = 2.71828) raised to the power x where x is any real number. Syntax: double exp(double x);Arguments: This function takes only one argument of type
4 min read
Number System Conversion in C Number system conversion is a fundamental concept in computer science and programming. It involves changing the representation of a number from one base to another, such as converting a decimal number to binary or a hexadecimal number to binary.In this article, we will create a console program in th
8 min read
C Program to find whether a no is power of two Given a positive integer, write a function to find if it is a power of two or not.Examples : Input : n = 4 Output : Yes 22 = 4 Input : n = 7 Output : No Input : n = 32 Output : Yes 25 = 32 1. A simple method for this is to simply take the log of the number on base 2 and if you get an integer then nu
3 min read
Output of C Program | Set 27 Predict the output of following C programs. Question 1 C #include <stdio.h> int main(void) { int i; int power_of_ten[5] = { 00001, 00010, 00100, 01000, 10000, }; for (i = 0; i < 5; ++i) printf("%d ", power_of_ten[i]); printf("\n"); return 0; } In the above example, we ha
3 min read