연도를 입력받고, 해당 연도가 윤년인지 평년인지를 판단하는 프로그램을 작성하시오.

단, 윤년일 경우에는 L을, 평년일 경우에는 C를 출력하며, 반드시 조건 연산자를 사용하시오.

- 윤년 = 4로 나누어떨어지는 수는 윤년인데, 그 중에서 100으로 나누어떨어지는 수는 제외한다.

- 윤년 = 400 으로 나누어떨어지는 수는 윤년 | ex) 400, 800, 2000

- 평년 = 그 외는 평년

참고: 윤년 Leap year, 평년 Common year

 

실행 예시 1
실행 예시 2


#pragma warning(disable:4996)

#include <stdio.h>

int main() { //main함수 선언
	int year; //연도 정수형 변수 선언
	char condition1; //조건1 문자형 변수 선언
	char condition2; //조건2 문자형 변수 선언

	scanf("%d", &year); //연도 입력받음.

	condition1 = year % 4 == 0 && year % 100 != 0 ? 'L' : 'C'; //조건1 : 입력받은 연도가 4로 나누어떨어지고, 100으로 나누어떨어지지 않으면 윤년(L). 아니라면 평년(C).

	condition2 = year % 400 == 0 ? 'L' : 'C'; //조건2 : 입력받은 연도가 400으로 나누어떨어지면 윤년(L). 아니라면 평년(L).

	condition1 == 'L' || condition2 == 'L' ? printf("L\n") : printf("C\n"); //조건1이나 조건2에 의해 입력받은 연도(year)가 윤년(L)이라면 윤년(L)출력. 그 외는 평년(C)출력.


	//사실 조건변수 1개만 사용해서도 같은 코딩이 가능함. 가독성이 떨어지는 거 같아서 위처럼 작성함. 아래는 1개만 사용한 코드.
	//char condition;
	//condition = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ? 'L' : 'C';
	//printf("%c\n", condition);

	return 0; //0 반환
}
반응형