[C]코드업_1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기(설명)

Alal11·2022년 5월 16일
0
post-thumbnail

출처

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


문제

점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.

평가 기준
점수 범위 : 평가
90 ~ 100 : A
70 ~ 89 : B
40 ~ 69 : C
0 ~ 39 : D
로 평가되어야 한다.

참고
여러 조건들을 순서대로 비교하면서 처리하기 위해서 조건문을 중첩할 수 있다.
만약, 순서대로 검사하고 실행하기 위해 아래와 같이 중첩 시킨다면,

if(조건1)
{
...
}
else
{
if(조건2)
{
...
}
else
{
...
}
}

중첩된 구조는 논리적으로 1단위이기 때문에 코드블록 기호를 생략하면
아래와 같은 구조로 다시 표현될 수 있다.

if(조건1) { ... ; }
else if(조건2) { ... ; }
else { ...; }

이와 같이 조건을 계속 붙여나가면..

if(조건1) { ... ; }
else if(조건2) { ... ; }
else if(조건3) { ... ; }
else if(조건4) { ... ; }
else if(조건5) { ... ; }
else if(조건6) { ... ; }
else if(조건...) { ... ; }
else { ... ; }

위와 같은 구조를 만들어 순서대로 조건을 검사할 수 있다.
어떤 조건이 참이면, 그 부분의 내용을 실행하고 조건/선택 구조를 빠져나간다.

이렇게 조건들을 순서대로 검사할 때에는
중간에 범위가 빠지지 않았는지 꼼꼼하게 생각하고 조건들을 만드는 것이 중요하다.
이는 마치 수학에서 빠진 범위 없이 부등식을 만드는 것과 유사하다.


입력

정수(0 ~ 100) 1개가 입력된다.


출력

평가 결과를 출력한다.


➡️문제 분석

if~else 문을 이용해 점수를 입력하고 그에 맞는 등급 출력하기


➡️코드(⭕)

<코드 분석>

단순히 if~else 문을 사용하여 각각 구간에 맞는 등급을 출력했다.


➡️end

코드를 만들고 보니 더 간단하게 줄일 수 있을 것 같다.

#include <stdio.h>

int main(void)
{
	int a;

	scanf_s("%d", &a);

	if (a >= 90)
		printf("A");
	else if (a >= 70)
		printf("B");
	else if (a >= 40)
		printf("C");
	else
		printf("D");
	return 0;
}

훨씬 간단해졌다. if~else 문은 위에서 부터 순차적으로 실행되기 때문에 위에서 조건이 맞으면 아래로 내려오지 않는다. 그래서 이상의 범위만 설정해줘도 문제가 되지 않는다.

0개의 댓글