개요
이 글에서는 사용자로부터 총 일수를 입력받아, 이를 개월 수와 남은 일수로 변환하여 출력하는 C 프로그램을 살펴보겠습니다. 예를 들어 456일을 입력하면 '15개월 6일'처럼 표현할 수 있습니다.
변환 공식
일수를 월 단위로 변환하는 기본 공식은 다음과 같습니다. 한 달을 30일로 가정하고 정수 나눗셈을 활용합니다.
Month = days / 30
그리고 나머지 연산자(%)를 사용하면 한 달로 나누고 남은 일수를 구할 수 있습니다.
Days = days % 30
알고리즘
다음은 일수를 개월 수와 일수로 변환하는 알고리즘입니다.
1단계: 시작
2단계: month와 days 변수 선언
3단계: 총 일수 입력받기
4단계: 개월 수 계산
months = days / 30
5단계: 남은 일수 계산
days = days % 30
6단계: 개월 수 출력
7단계: 일수 출력
C 프로그램 코드
다음은 일수를 개월 수와 일수로 변환하는 C 프로그램의 전체 소스 코드입니다.
#include<stdio.h>
main (){
int months, days ;
printf("Enter days\n") ;
scanf("%d", &days) ;
months = days / 30 ;
days = days % 30 ;
printf("Months = %d Days = %d", months, days) ;
}
실행 결과
위 프로그램을 컴파일하여 실행하면 다음과 같은 결과를 확인할 수 있습니다.
Enter days
456
Months = 15 Days = 6
Enter days
145
Months = 4 Days = 25
코드 동작 원리
이 프로그램의 핵심은 정수 나눗셈(/)과 나머지 연산자(%)입니다. C 언어에서 정수형 변수끼리 나눗셈을 하면 소수점 이하는 버려지므로, 456 / 30의 결과는 15가 됩니다. 이 값이 바로 개월 수입니다. 이어서 456 % 30을 계산하면 6이 남는데, 이것이 마지막 달의 남은 일수가 됩니다. 이처럼 두 가지 산술 연산만으로 간단하게 일수를 개월 단위로 변환할 수 있습니다.