안경잡이 구루루

백준 9498 (시험성적) [C programming] [VS/Visual Code] 본문

C언어(C programming)/문제풀이(백준,BaekJoon)

백준 9498 (시험성적) [C programming] [VS/Visual Code]

구루루(gururu) 2023. 11. 3. 13:18
반응형

https://www.acmicpc.net/problem/9498

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 


나:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int score;
	scanf("%d", &score);
	switch (score/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");
		break;
	}
	return 0;
}

완성된 코드는 위와 같다.

 

우선 VS 에서 scanf 오류를 막기 위해 #define _CRT_SECURE_NO_WARNINGS 선

 

이후 정수형 score 변수 선언후 입력값을 받는다.

 

이후 switch 문을 이용해 A~F 까지 10을 나눈 몫을 기준으로 상황을 나눠준다.

참고로 문제의 입력값은 0<= score <=100 이기 때문에 100을 넘어가는 점수의 경우는 신경쓰지 않아도 된다. 

 

그리고 100점의 경우도 A에 해당하기 때문에 case 9 와 같은 상황으로 판단하기 위해 case 10에서는 break 문을 사용하지 않았다.


다른사람:

https://velog.io/@shin75492/%EB%B0%B1%EC%A4%80%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-9498-C99

 

#include<stdio.h>

int main()
{
	int Score;
	scanf_s("%d", &Score);

	if (Score >= 90 && Score <= 100)
	{
		printf("A");
	}
	else if (Score >= 80 && Score <= 89)
	{
		printf("B");
	}
	else if (Score >= 70 && Score <= 79)
	{
		printf("C");
	}
	else if (Score >= 60 && Score <= 69)
	{
		printf("D");
	}
	else
	{
		printf("F");
	}
}

완성된 코드는 위와 같다.

 

주목할 점은 switch 구문 대신에 if 조건문과 논리연산자를 이용해 구현한점이다.

반응형