본문 바로가기
C, C++/Problem Solving

[코드업 1202번] 등급 판정 해설

by hseoy 2020. 11. 17.
반응형

[문제 내용]

아래 링크로 설명을 대신한다.

https://codeup.kr/problem.php?id=1202

 

등급 판정

점수가 정수로 입력된다. (입력되는 정수는 0~100이다)

codeup.kr

[해답 코드 및 설명]

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    switch (n / 10) {
        case 10:
        case 9:
            printf("A");
            break;
        case 8:
            printf("B");
            break;
        case 7:
            printf("C");
            break;
        case 6:
            printf("D");
            break;
        default:
            printf("F");
    }
    return 0;
}

 

0~100까지의 정수에 따라 등급을 출력하면 되고 등급은 점수 십의 자리에서 결정된다. 따라서 10으로 나눠서 switch-case 문으로 동작을 수행시켰다. 10으로 나눴을 때 10이나 9면 'A'를 출력하고 8이면 'B', 7이면 'C', 6이면 'D', 그 아래의 값이면 'F'를 각각 출력한다.

아래와 같이 더 짧게도 짤 수도 있다. 각 점수대에서 보여줘야 하는 문자들을 하나의 배열, 문자열로 만들어 두고 (입력 받은 값 / 10)을 인덱스로 하여 출력하는 방식으로 작성한 것이다.

#include <stdio.h>

int main()
{
    int n;
    const char *g = "FFFFFFDCBAA";
    scanf("%d", &n);
    printf("%c", g[n/10]);
    return 0;
}
반응형

댓글