Related Articles
acos() function in C++ STL
• Last Updated : 10 May, 2021

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)`

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 ``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 ``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 ``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 ``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```
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up