목차 : https://wondangcom.tistory.com/2797
마법의 성적표
한 마을에 마법사 프로그래머가 살고 있었습니다. 이 마법사는 성적표를 만들어주는 특별한 프로그램을 개발했습니다. 그 이름은 "마법의 성적표 생성기"였습니다.
어느 날, 중학생 미니는 시험을 치르고 성적을 받았습니다. 그녀는 국어, 영어, 수학 점수를 입력했습니다. 마법사 프로그래머는 그녀의 성적을 분석하고 학점을 부여해주었습니다.
미니의 성적을 입력하면
- 국어 점수: 85
- 영어 점수: 92
- 수학 점수: 78
(85 + 92 + 78) / 3 = 85 라는 평균을 구하고 이 평균 값이 90점 이상이면 A학점,80점 이상이면 B학점,70점 이상이면 C학점,60점 이상이면 D학점, 아니라면 F학점을 구해주었습니다.
미니는 이 프로그램이 어떻게 구현되는지 무척이나 궁금했습니다.
미니를 위해 학점을 구해주는 프로그램을 작성해 주세요.
C언어
#include <stdio.h>
int main() {
int kor, eng, math, avg;
char grade;
printf("국어 점수: ");
scanf("%d", &kor);
printf("영어 점수: ");
scanf("%d", &eng);
printf("수학 점수: ");
scanf("%d", &math);
avg = (kor + eng + math) / 3;
if (avg >= 90) {
grade = 'A';
} else if (avg >= 80) {
grade = 'B';
} else if (avg >= 70) {
grade = 'C';
} else if (avg >= 60) {
grade = 'D';
} else {
grade = 'F';
}
printf("평균: %d\n", avg);
printf("학점: %c\n", grade);
return 0;
}
위의 코드에서 if(avg>=90) 일때 grad='A' 가 됩니다.
다음으로 else if 문에서는 위의 if문이 거짓일때 (즉 avg <90 일때) 값을 판단합니다.따라서 else if(avg>=80) 에서는 80~89 일때만 참이 됩니다.else if는 체를 이용하여 굵은것을 걸러 내고 남은 것을 다시 촘촘한 채를 이용하여 다음 것을 골라내는 원리와 같습니다.
C++
#include <iostream>
using namespace std;
int main() {
int kor, eng, math, avg;
char grade;
cout << "국어 점수: ";
cin >> kor;
cout << "영어 점수: ";
cin >> eng;
cout << "수학 점수: ";
cin >> math;
avg = (kor + eng + math) / 3;
if (avg >= 90) {
grade = 'A';
} else if (avg >= 80) {
grade = 'B';
} else if (avg >= 70) {
grade = 'C';
} else if (avg >= 60) {
grade = 'D';
} else {
grade = 'F';
}
cout << "평균: " << avg << endl;
cout << "학점: " << grade << endl;
return 0;
}
C언어와 동일합니다.
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int kor, eng, math, avg;
char grade;
System.out.print("국어 점수: ");
kor = scanner.nextInt();
System.out.print("영어 점수: ");
eng = scanner.nextInt();
System.out.print("수학 점수: ");
math = scanner.nextInt();
avg = (kor + eng + math) / 3;
if (avg >= 90) {
grade = 'A';
} else if (avg >= 80) {
grade = 'B';
} else if (avg >= 70) {
grade = 'C';
} else if (avg >= 60) {
grade = 'D';
} else {
grade = 'F';
}
System.out.println("평균: " + avg);
System.out.println("학점: " + grade);
}
}
C언어와 동일합니다.
Python
def main():
kor = int(input("국어 점수: "))
eng = int(input("영어 점수: "))
math = int(input("수학 점수: "))
avg = (kor + eng + math) // 3
if avg >= 90:
grade = 'A'
elif avg >= 80:
grade = 'B'
elif avg >= 70:
grade = 'C'
elif avg >= 60:
grade = 'D'
else:
grade = 'F'
print(f"평균: {avg}")
print(f"학점: {grade}")
if __name__ == "__main__":
main()
파이썬에서는 else if 문 대신에 elif 를 사용합니다. 내용은 동일합니다.
마무리
if(avg>=90){
grad = 'A';
}
if(avg>=80){
grad = 'B';
}
위의 코드에서 avg가 100 이라면 grad는 B가 됩니다.
if(avg>=90) 에서 grad='A' 가 되었다가
다음 문장의 if(avg>=80) 에서 참이 되므로 grad = 'B' 가 되어 최종적으로 B 가 되는 원리입니다.
이와 같이 if ... if ... 문을 사용하여 체크하는 것과 if ... else if ... 문을 사용하여 체크하는 것과는 차이가 있을 수 있으므로 체를 치는 원리에서는 반드시 else if 문을 사용해야 합니다.
인천 검단 원당컴퓨터 학원(T 032-565-5497)
#정보올림피아드
#검단신도시코딩
#원당동코딩
#마전동코딩
#왕길동코딩
#당하동코딩
#아라동코딩
#풍무동코딩
#불로동코딩
#검단동코딩
#검암동코딩
'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글
4.3 마법의 점수 (7) | 2024.10.02 |
---|---|
4.2 코디와 마법의 성문 (6) | 2024.09.04 |
4.1 용과 마을의 보물 (4) | 2024.07.02 |
3.5 토끼와 거북이의 미로 탈출 (5) | 2024.06.20 |
3.4 프로그래밍 왕국의 비교 연산자 (5) | 2024.06.11 |