다음을 통해 공유


acos, , acosfacosl

아크코사인을 계산합니다.

구문

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

매개 변수

x
-1에서 1 사이의 값으로, 아크코사인(역코사인)을 계산합니다.

반환 값

acos 함수는 0라디언에서 π라디언 사이의 범위에 있는 x의 아크코사인을 반환합니다.

기본적으로 -1보다 작거나 1 acos 보다 큰 경우 x 무기한을 반환합니다.

입력 SEH 예외 _matherr 예외
± INF INVALID _DOMAIN
± QNaN, IND 없음 _DOMAIN
|x| > 1 INVALID _DOMAIN

설명

C++는 오버로딩을 허용하기 때문에 acosfloat 형식을 사용하고 반환하는 long double의 오버로드를 호출할 수 있습니다. C 프로그램에서 매크로를 사용하여 이 함수 acos<tgmath.h> 호출하지 않는 한 항상 double.

매크로<tgmath.h>acos 사용하는 경우 인수 형식에 따라 선택한 함수 버전이 결정됩니다. 자세한 내용은 형식-제네릭 수학을 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더 선택적 헤더
acos, , acosfacosl <math.h> <errno.h>
acos 매크로 <tgmath.h>

예시

이 프로그램에서 -1에서 1 사이 범위의 값을 묻는 메시지가 나타납니다. 이 범위를 벗어나는 입력 값은 _DOMAIN 오류 메시지를 생성합니다. 올바른 값을 입력하는 경우 프로그램에서 해당 값의 아크사인 및 아크코사인을 인쇄합니다.

// 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

참고 항목

수학 및 부동 소수점 지원
asin, , asinfasinl
atan, atanf, atanl, atan2, atan2fatan2l
cos, , cosfcosl
_matherr
sin, , sinfsinl
tan, , tanftanl