본문 바로가기

코딩/백준 BOJ

[백준/C언어] 9498번 - 시험 성적

백준 웹사이트 "9498번 - 시험 성적" 문제풀이입니다.

언어는 C언어입니다. (제출 언어: C99)

 


문제

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net


소스 코드

#include <stdio.h>

int main(void){
    int score;
    scanf("%d", &score);

    if(score>=90)
        printf("A");
    else if(score>=80)
        printf("B");
    else if(score>=70)
        printf("C");
    else if(score>=60)
        printf("D");
    else
        printf("F");
}

문제 풀이

  Line 9의 경우, '80점 이상 90점 미만이면 B'이기 때문에 Line 9의 조건문이 '90>score>=80'이 되어야 한다고 생각할 수 있습니다. 실제로 이렇게 해도 틀리지 않습니다! 하지만 else if 는 "앞선 조건들에는 해당되지 않고, 이 조건에 해당되면"이라는 의미를 가집니다. 따라서 앞선 조건 'score>=90'에 해당되지 않는다는 의미를 이미 가지고 있기에, 'score>=80'이라는 조건문만 걸어주어도 충분합니다.

  마찬가지로 Line 11의 경우도 score이 90 이상, 80 이상이 아니면서 70 이상이라면 C를 출력하는 의미가 되기에 '80>score>=70'일 경우에만 출력이 되며, D와 F의 출력도 그렇습니다.

  if문의 실행문은 원래 중괄호 { }로 구분시켜줘야 하지만, 실행문이 한 줄일 경우에만 중괄호를 생략해줘도 됩니다. 위의 소스 코드는 중괄호를 모두 생략하여 보기 편하게 만들어주었습니다.

반응형