본문 바로가기
코딩/백준

[C언어] 백준 BOJ 9498 시험 성적

by 김두루미 2022. 6. 30.
반응형

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