https://www.acmicpc.net/problem/9498
9498번: 시험 성적
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제 설명
백준의 문제 - 단계별로 풀어보기의 [조건문] 의 9498 시험 성적 문제입니다.
A : 90~100점
B : 80~89점
C : 70~79점
D : 60~69점
F : 나머지 점수(0~59점)
입력받은 정수 값을 위의 구간에 알맞게 출력을 하는 문제입니다. 정수 값의 범위는 0 이상 100 이하로 입력됩니다.
코드 (C언어)
#include<stdio.h>
int main(void)
{
int score;
scanf("%d", &score);
if(score >= 90 && score <= 100)
{
printf("A");
}
if(score >= 80 && score <= 89)
{
printf("B");
}
if(score >= 70 && score <= 79)
{
printf("C");
}
if(score >= 60 && score <= 69)
{
printf("D");
}
if(score >= 0 && score <= 59)
{
printf("F");
}
return 0;
}
문제에서 명시한 범위대로 if문의 조건문에 그대로 표현을 하면 되는 문제입니다. 위의 코드처럼 if문으로만 구현을 하는 경우 성적의 정확한 범위를 모두 명시해야합니다. if문에서 사용할 수 있는 else if와 else를 사용하여 범위를 검사하면 조건식이 더욱 간단해지는 모습을 볼 수 있습니다.
#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");
}
return 0;
}
위의 코드와 같이 if문이 틀렸으면(거짓이면), 아래에 있는 else if문이 실행됩니다. 그럼 아래의 else if문에는 위의 수식에서 틀린 경우만 넘어오게 되므로, 굳이 뒤의 숫자의 범위를 적을 필요가 없어집니다. if(score >= 90) 의 조건식이 틀린다면, 그 밑의 else if(score >= 80)으로 갈 수 있는 숫자의 범위는 0~89까지의 숫자들입니다. 90~100의 숫자들은 위의 if(score>=90)의 조건이 맞으므로 이미 A를 출력하고 종료되었습니다. 위와 같이 else if와 else문이 조건식의 범위를 대체할 수 있는 용도로 사용할 수 있습니다.
'코딩' 카테고리의 다른 글
[C언어] 백준 BOJ 14681 사분면 고르기 (0) | 2022.07.02 |
---|---|
[C언어] 백준 BOJ 2753 윤년 (0) | 2022.07.01 |
[C] 백준 BOJ 1330 두 수 비교하기 (0) | 2022.06.29 |
[C] 백준 BOJ 25083 새싹 (0) | 2022.06.28 |
[C] 백준 BOJ 2588 곱셈 (0) | 2022.06.27 |