반응형
[문제 내용]
아래 링크로 설명을 대신한다.
https://codeup.kr/problem.php?id=1202
[해답 코드 및 설명]
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
switch (n / 10) {
case 10:
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
case 6:
printf("D");
break;
default:
printf("F");
}
return 0;
}
0~100까지의 정수에 따라 등급을 출력하면 되고 등급은 점수 십의 자리에서 결정된다. 따라서 10으로 나눠서 switch-case 문으로 동작을 수행시켰다. 10으로 나눴을 때 10이나 9면 'A'를 출력하고 8이면 'B', 7이면 'C', 6이면 'D', 그 아래의 값이면 'F'를 각각 출력한다.
아래와 같이 더 짧게도 짤 수도 있다. 각 점수대에서 보여줘야 하는 문자들을 하나의 배열, 문자열로 만들어 두고 (입력 받은 값 / 10)을 인덱스로 하여 출력하는 방식으로 작성한 것이다.
#include <stdio.h>
int main()
{
int n;
const char *g = "FFFFFFDCBAA";
scanf("%d", &n);
printf("%c", g[n/10]);
return 0;
}
반응형
'C, C++ > Problem Solving' 카테고리의 다른 글
[백준BOJ 1157번] 단어 공부 해설 (0) | 2020.11.23 |
---|---|
[코드업 1131번] 문자 출력하기 해설 (0) | 2020.11.12 |
[코드업 1120번] 세 수의 평균 해설 (0) | 2020.11.12 |
[코드업 1153번] 두 수의 대소 비교 해설 (0) | 2020.11.12 |
[코드업 1125번] 8진수 16진수 변환 해설 (0) | 2020.11.12 |
댓글