C, C++

C/C++/if/윤년평년 판별식

오지이 2020. 1. 6. 10:34

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "config.h"
 
void main() {
 
    // 윤년/평년 판별식 : 
    // 년도가 4로 나누어 떨어지고(&&), 100으로 나눠 떨어지지 않거나(||) 400으로 나눠 떨어지면 윤년, 그렇지 않으면 평년
 
    int year;
 
    cout << "윤년/평년을 판단할 년도를 입력하세요 : ";
    cin >> year;
 
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        // printf("%d = 윤년\n", year);
        cout << year << "년은 윤년입니다." << endl;
    } 
    else {
        // printf("%d = 평년\n", year);
        cout << year << "년은 평년입니다." << endl;
    }
 
    // 삼항 연산자로 나타내기.
    // 간단한 if, 조건이 참이나 거짓일 때 실행할 문장이 딱 1개씩일 경우 사용하면 편리하다.
    // 형식 : 조건식 ? 조건식이 참일 때 실행할 문장 : 조건식이 거짓일 때 실행할 문장
    // c++ => 영어, 숫자, 특수문자 는 한 글자를 1바이트(문자, %c)로 인식하지만, 한글은 2바이트 이상 => %s (문자열)
    
// < 2가지 형식 >    
 
    printf("%d년은 %s년입니다.\n", year, year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? "윤" : "평");
    
    cout << year << "년은 " << (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? "윤" : "평"<< "년입니다." << endl;
 
 
}
cs

 

프로그램에서 여러번 사용되는 값은 변수에 저장해서 사용하면 편리하다.
isleapYear 에 윤년/평년을 판단할 함수를 저장한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    // 논리값을 기억하는 변수나 결과(리턴) 값이 논리값인 함수의 이름은 "is" 로 시작하는 것이 관행이다.
 
    int year;
    cout << "윤년/평년을 판단할 년도를 입력하세요 : ";
    cin >> year;
 
    bool isleapYear = year % 4 == 0 && year % 100 != 0 || year % 400 == 0
 
    if (isleapYear) {
        // printf("%d = 윤년\n", year);
        cout << year << "년은 윤년입니다." << endl;
    } 
    else {
        // printf("%d = 평년\n", year);
        cout << year << "년은 평년입니다." << endl;
    }
 
    printf("%d년은 %s년입니다.\n", year, isleapYear ? "윤" : "평");
    
    cout << year << "년은 " << (isleapYear ? "윤" : "평"<< "년입니다." << endl;
 
 
}
cs