본문 바로가기
카테고리 없음

[예제] C언어로 연도를 입력받아 윤년 여부 판별하기

by heydayz 2024. 8. 9.

C언어로 연도를 입력받아 윤년 여부 판별하기 시뮬레이션

C언어로 연도를 입력받아 해당 연도가 윤년인지 여부를 판별하는 프로그램을 만들것입니다. 그렇다면 프로그램을 만들기 위해서는 윤년이라는 개념이 필요합니다. 윤년이란? 4년마다 한번씩 2월이 29일이 되는 해를 말합니다. 그렇다면 프로그램에서 윤년을 판단하려면 내가 제공한 연도가 4로 나누어지고 100으로 떨어지지 않는 해를 윤년으로 볼 수 있으며 또는 400으로 딱 나누어 떨어지는 해도 윤년이라고 조건을 줄 수 있습니다.
<stdio.h>: 표준 입출력 라이브러리

 

코드 구현 및 설명

#include <stdio.h>

// 윤년 판별 함수
int is_leap_year(int year) {
    return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}

int main() {
    int year;

    printf("연도를 입력하세요: ");
    if (scanf("%d", &year) != 1) {
        printf("잘못된 입력입니다.\n");
        return 1;
    }

    if (is_leap_year(year)) {
        printf("%d년은 윤년입니다.\n", year);
    } else {
        printf("%d년은 윤년이 아닙니다.\n", year);
    }

    return 0;
}

int year : 사용자로 연도를 입력받습니다.
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
} 는 윤년을 판별하는 함수입니다.

#include <stdio.h>

int main() {
    int year;

    printf("연도를 입력하세요: ");
    scanf("%d", &year);

    printf("%d년은 %s.\n", year, 
           (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? "윤년" : "평년");

    return 0;
}

삼항연산자로 표현할 수 있습니다.조건이 참일 때 "윤년", 거짓일 때 "평년"을 출력합니다. 또는

비트 연산자를 이용하여 조건을 표현했습니다. !는 논리 부정, &&는 논리 AND, ||는 논리 OR 연산자입니다. 비트 연산은 속도 면에서 약간의 이점이 있을 수 있지만, 가독성이 떨어질 수 있습니다.

코드 설명

연도 입력: 사용자로부터 연도를 입력받아 변수 year에 저장합니다.
윤년 판별: year % 4 == 0 && year % 100 != 0: 4로 나누어 떨어지고 100으로 나누어 떨어지지 않는 경우
year % 400 == 0: 400으로 나누어 떨어지는 경우
위 두 조건 중 하나라도 만족하면 윤년입니다.
.