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>
acosMacro <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 matemáticas y punto flotante
asin, asinf, asinl
atan, atanf, atanl, atan2, atan2f, atan2l
cos, cosf, cosl
_matherr
sin, sinf, sinl
tan, tanf, tanl