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