acos
, , acosf
, acosl
Calcula el arco coseno.
Sintaxis
double acos( double x );
float acosf( float x );
long double acosl( long double x );
#define acos(X) // Requires C11 or higher
float acos( float x ); // C++ only
long double acos( long double x ); // C++ only
Parámetros
x
Valor entre -1 y 1 para el que calcular el arco coseno (coseno inverso).
Valor devuelto
La acos
función devuelve el arcocoseno de x
en el intervalo de 0 a π radianes.
De forma predeterminada, si x
es menor que –1 o mayor que 1, acos
devuelve un indefinido.
Entrada | Excepción SEH | Excepción de _matherr |
---|---|---|
± INF | INVALID |
_DOMAIN |
± QNaN, IND | None | _DOMAIN |
|x| > 1 |
INVALID |
_DOMAIN |
Comentarios
Como C++ permite las sobrecargas, puede llamar a las sobrecargas de acos
que toman y devuelven los tipos float
y long double
. En un programa de C, a menos que use la macro <tgmath.h>
para llamar a esta función, acos
siempre toma y devuelve double
.
Si usa la acos
macro de <tgmath.h>
, el tipo del argumento determina qué versión de la función está seleccionada. Consulte Matemáticas de tipo genérico para obtener más información.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario | Encabezados opcionales |
---|---|---|
acos , , acosf , acosl |
<math.h> |
<errno.h> |
acos Macro |
<tgmath.h> |
Ejemplo
Este programa solicita un valor del intervalo comprendido entre -1 y 1. Los valores de entrada que no estén dentro de este intervalo producen mensajes de error de _DOMAIN
. Si se especifica un valor válido, el programa imprime el arco seno y el arco coseno de ese valor.
// crt_asincos.c
// arguments: 0
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main( int ac, char* av[] )
{
double x,
y;
errno_t err;
// argument checking
if (ac != 2)
{
fprintf_s( stderr, "Usage: %s <number between -1 and 1>\n",
av[0]);
return 1;
}
// Convert argument into a double value
if ((err = sscanf_s( av[1], "%lf", &x )) != 1)
{
fprintf_s( stderr, "Error converting argument into ",
"double value.\n");
return 1;
}
// Arcsine of X
y = asin( x );
printf_s( "Arcsine of %f = %f\n", x, y );
// Arccosine of X
y = acos( x );
printf_s( "Arccosine of %f = %f\n", x, y );
}
Arcsine of 0.000000 = 0.000000
Arccosine of 0.000000 = 1.570796
Consulte también
Compatibilidad con cálculos matemáticos y el punto flotante
asin
, , asinf
, asinl
atan
, atanf
, atanl
, atan2
, , atan2f
, atan2l
cos
, , cosf
, cosl
_matherr
sin
, , sinf
, sinl
tan
, , tanf
, tanl