연도를 입력받고, 해당 연도가 윤년인지 평년인지를 판단하는 프로그램을 작성하시오.
단, 윤년일 경우에는 L을, 평년일 경우에는 C를 출력하며, 반드시 조건 연산자를 사용하시오.
- 윤년 = 4로 나누어떨어지는 수는 윤년인데, 그 중에서 100으로 나누어떨어지는 수는 제외한다.
- 윤년 = 400 으로 나누어떨어지는 수는 윤년 | ex) 400, 800, 2000
- 평년 = 그 외는 평년
참고: 윤년 Leap year, 평년 Common year
#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 반환
}
반응형
최근댓글