Skip to content
Related Articles
Open in App
Not now

Related Articles

acos() function in C++ STL

Improve Article
Save Article
Like Article
  • Last Updated : 02 Feb, 2023
Improve Article
Save Article
Like Article

acos() is an inbuilt function in C++ STL and it’s the same as the inverse of cosine in maths. The acos() function returns the values in the range of [0, ?] that is an angle in radian.

Syntax :

acos(data_type x)

Time Complexity: O(1)
Auxiliary Space: O(1)

Parameters : This function accepts one mandatory parameter x which specifies the value whose inverse of cosine should be computed. x must be in the range of [-1, 1] to find valid output as [0, ?], else acos(x) function returns NaN(Not a Number) . The parameter x can be of double, float or long double datatype.

Return : The function returns angles in radians in the range of  [0,?]. It is the counterclockwise angle which is measured in radian.

Program 1:

C++




// C++ program to demonstrate
// the acos() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 1.0;
 
    // Function call to calculate acos(x) value
    double result = acos(x);
 
    cout << "acos(1.0) = " << result <<
                               " radians" << endl;
    cout << "acos(1.0) = " << result * 180 / 3.141592
         << " degrees" << endl;
 
    return 0;
}


Output

acos(1.0) = 0 radians
acos(1.0) = 0 degrees

Program 2:

C++




// C++ program to demonstrate
// the acos() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double result;
    int x = -1;
 
    // Function call to calculate acos(x) value
    result = acos(x);
 
    cout << "acos(-1) = " << result
        << " radians" << endl;
    cout << "acos(-1) = " << result * 180 / 3.141592
        << " degrees" << endl;
 
    return 0;
}


Output

acos(-1) = 3.14159 radians
acos(-1) = 180 degrees

Errors and Exceptions:

  • The function returns no matching function for call to error when a string or character is passed as an argument.
  • The function returns nan when a out of domain(domain [-1,1]) number is passed as an argument.

Below programs illustrate the errors and exceptions of the above method:

Program 3:

C++




// C++ program to demonstrate the acos()
// function errors and exceptions
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double result;
    string x = "gfg";
    result = acos(x);
 
    cout << "acos(x) = " << result
        << " radians" << endl;
    cout << "acos(x) = " << result * 180 / 3.141592
        << " degrees" << endl;
 
    return 0;
}


Output:

prog.cpp:10:17: error: no matching function for call to 'acos(std::__cxx11::string&)'
  result = acos(x);

When argument x >1 or x<-1 it will give nan(not a number).

Program 4:

C++




// C++ program to demonstrate the
// acos() function errors and exceptions
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    double x = 3.7, result;
 
    // Function call to calculate acos(x) value
    result = acos(x);
 
    cout << "acos(3.7) = " << result
        << " radians" << endl;
    cout << "acos(3.7) = " << result * 180 / 3.141592
        << " degrees" << endl;
 
    return 0;
}


Output

acos(3.7) = nan radians
acos(3.7) = nan degrees

Output:

acos(3.7) = nan radians
acos(3.7) = nan degrees

My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!