Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 math.h 라이브러리로 코사인·사인 값 계산하기

C 언어의 표준 수학 라이브러리인 math.h에는 삼각함수를 비롯해 다양한 수학 관련 함수들이 포함되어 있습니다. 이번 글에서는 cos() 함수와 sin() 함수를 활용해 0도부터 150도까지 10도 간격으로 코사인 값과 사인 값을 계산하고 출력하는 C 프로그램을 단계별로 살펴보겠습니다.


문제 정의

0도에서 150도까지 10도 간격의 모든 각도에 대해 코사인 값과 사인 값을 구해 화면에 출력하는 것이 목표입니다.

해결 방법

math.h의 삼각함수는 라디안(radian) 단위의 입력값을 받기 때문에, 먼저 각도를 라디안으로 변환하는 과정이 필요합니다. 프로그램 시작 부분에서 원주율(PI)과 최대 각도(MAX)를 매크로 상수로 선언한 뒤, while 반복문으로 각도를 10도씩 늘려가며 값을 계산하고 형식화된 출력으로 보여줍니다.

코사인 값 계산 로직

코사인 값을 구하는 핵심 로직은 다음과 같습니다.

while(angle <= MAX){
    x = (PI/MAX)*angle;
    y = cos(x);
    printf("%15d %13.4f\n", angle, y);
    angle = angle + 10;
}

사인 값 계산 로직

사인 값 역시 동일한 구조로 계산하며, cos() 함수 대신 sin() 함수만 호출하면 됩니다.

while(angle <= MAX){
    x = (PI/MAX)*angle;
    y = sin(x);
    printf("%15d %13.4f\n", angle, y);
    angle = angle + 10;
}

예제 1: 코사인 값 출력 프로그램

다음은 코사인 값을 계산하여 출력하는 완전한 C 프로그램입니다.

//코사인 값 계산
#include<stdio.h>
#include<math.h>
#define PI 3.1416
#define MAX 150
main ( ) {
    int angle;
    float x,y;
    angle = 0;
    printf("Angle cos(angle)\n\n");
    while(angle <= MAX) {
        x = (PI/MAX)*angle;
        y = cos(x);
        printf("%15d %13.4f\n", angle, y);
        angle = angle + 10;
    }
}

실행 결과

위 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.

Angle cos(angle)
0 1.0000
10 0.9781
20 0.9135
30 0.8090
40 0.6691
50 0.5000
60 0.3090
70 0.1045
80 -0.1045
90 -0.3090
100 -0.5000
110 -0.6691
120 -0.8090
130 -0.9135
140 -0.9781
150 -1.0000

예제 2: 사인 값 출력 프로그램

다음은 사인 값을 계산하여 출력하는 C 프로그램입니다.

//사인 값 계산
#include<stdio.h>
#include<math.h>
#define PI 3.1416
#define MAX 150
main ( ){
    int angle;
    float x,y;
    angle = 0;
    printf("Angle sin(angle)\n\n");
    while(angle <= MAX){
        x = (PI/MAX)*angle;
        y = sin(x);
        printf("%15d %13.4f\n", angle, y);
        angle = angle + 10;
    }
}

실행 결과

프로그램을 실행하면 아래와 같은 결과를 확인할 수 있습니다.

Angle sin(angle)

0 0.0000
10 0.2079
20 0.4067
30 0.5878
40 0.7431
50 0.8660
60 0.9511
70 0.9945
80 0.9945
90 0.9511
100 0.8660
110 0.7431
120 0.5878
130 0.4067
140 0.2079
150 -0.0000

마무리

이처럼 math.h 라이브러리의 cos()sin() 함수를 사용하면 복잡한 수학 공식을 직접 구현하지 않고도 삼각함수 값을 손쉽게 계산할 수 있습니다. 각도를 라디안으로 변환하는 식과 반복문을 조합하면 원하는 범위의 삼각함수 표를 자동으로 생성할 수 있으므로, 과제나 실습에서 자주 활용할 수 있는 기본 패턴입니다.