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

C 언어로 윤년을 판별하는 방법 완벽 가이드

윤년(閏年)은 366일로 구성된 해를 의미합니다. 일반적으로 4년마다 한 번씩 윤년이 찾아오며, 이때 2월은 평소의 28일이 아닌 29일까지 존재하게 됩니다.

윤년 판별 로직

사용자가 콘솔을 통해 입력한 연도가 윤년인지 아닌지를 확인하기 위해 다음과 같은 조건식을 사용합니다.

if (( year%400 == 0)|| (( year%4 == 0 ) &&( year%100 != 0)))

위 조건식의 의미를 살펴보면 다음과 같습니다.

  • 연도가 400으로 나누어 떨어지면 무조건 윤년입니다. (예: 2000년)
  • 연도가 4로 나누어 떨어지면서 동시에 100으로 나누어 떨어지지 않으면 윤년입니다. (예: 2024년)

이 두 조건 중 하나라도 만족하면 해당 연도는 윤년이며, 그렇지 않으면 평년입니다. 100으로 나누어 떨어지지만 400으로는 나누어 떨어지지 않는 연도(예: 1900년, 2100년)는 윤년에서 제외되는 점을 기억해야 합니다.

C 언어 예제 코드

다음은 if 조건문을 활용하여 윤년 여부를 검사하는 C 프로그램입니다.

#include <stdio.h>
int main(){
    int year;
    printf("Enter any year you wish \n ");
    scanf(" %d ", &year);
    if (( year%400 == 0)|| (( year%4 == 0 ) &&( year%100 != 0)))
        printf("\n %d is a Leap Year. \n", year);
    else
        printf("\n %d is not the Leap Year. \n", year);
    return 0;
}

코드 설명

  1. 정수형 변수 year를 선언하여 사용자로부터 연도를 입력받습니다.
  2. scanf 함수로 콘솔에서 연도 값을 읽어옵니다.
  3. 윤년 판별 조건식을 평가한 후, 참이면 "윤년입니다"라는 메시지를 출력합니다.
  4. 조건이 거짓이면 else 블록이 실행되어 "윤년이 아닙니다"라는 메시지를 출력합니다.

실행 결과

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

Enter any year you wish
2045
2045 is not the Leap Year.

입력된 2045년은 4로 나누어 떨어지지 않기 때문에 윤년이 아니라는 결과가 출력됩니다. 반대로 2024년이나 2000년을 입력하면 윤년으로 정상적으로 판별됩니다.