백준 웹사이트 "9498번 - 시험 성적" 문제풀이입니다.
언어는 C언어입니다. (제출 언어: C99)
문제
소스 코드
#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문의 실행문은 원래 중괄호 { }로 구분시켜줘야 하지만, 실행문이 한 줄일 경우에만 중괄호를 생략해줘도 됩니다. 위의 소스 코드는 중괄호를 모두 생략하여 보기 편하게 만들어주었습니다.
반응형
'코딩 > 백준 BOJ' 카테고리의 다른 글
[백준/C언어] 14681번 - 사분면 고르기 (0) | 2021.12.22 |
---|---|
[백준/C언어] 2753번 - 윤년 (0) | 2021.12.22 |
[백준/C언어] 1330번 - 두 수 비교하기 (0) | 2021.12.22 |
[백준/C언어] 2588번 - 곱셈 (0) | 2021.12.21 |
[백준/C언어] 10430번 - 나머지 (0) | 2021.12.20 |