package ch05.sec06;
import java.util.Scanner;
public class Exam {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("------------------------------------------------------------------------------------");
System.out.println("예제 7번");
// 예제 7번
// 주어진 배열에서 최대 값을 도출하는 코드
int[] array = { 1, 5, 3, 8, 2 };
int answer = 0; // 결과값 저장할 곳
for (int i = 0; i < array.length; ++i) {
boolean bettwen = (answer < array[i]); // anwser 이 더작으면 true를 반환
if (bettwen) {
answer = array[i]; // 작을 경우 anwser에 array 값을 집어넣음
}
}
System.out.println(answer); // 반복문 나온 뒤 답 도출
System.out.println("------------------------------------------------------------------------------------");
System.out.println("예제 8번");
// 예제 8번 주어진 배열의 합과 평균 구하는 코드
/*
* 해결 방안
*/
// 주어진 예시
int[][] arrary = { { 95, 86 }, { 83, 92, 96 }, { 78, 83, 93, 87, 88 } };
int count = 0; // 값이 존재하는 길이 카운트
int total_score = 0; // 총합
double avg_score = 0.0; // 평균
// 반복문
for (int i = 0; i < arrary.length; i++) {
// 전체 합
for (int j = 0; j < arrary[i].length; j++) {
total_score += arrary[i][j];
}
count += arrary[i].length;
}
// double 캐스팅
avg_score = (double) total_score / count;
System.out.println("전체 합 : " + total_score);
System.out.println("평균 : " + avg_score);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("예제 9번");
// 예제 9번
// 주어진 배열 항목에 전체 합과 평균을 구해 출력하는 코드
/*
* 학생 점수를 입력받아 값을 저장하고 분석하는 프로그램 while문과 Scanner의 nextLine() 함수를 이용하자 최고 점수 및 평균
* 점수를 출력하자
*/
// 문자열로 입력 될 경우 에러가 뜨기때문에 추후 개선 필요
Scanner sc = new Scanner(System.in); // 스캐너 객체 생성
int sel = 0; // 선택
int student_count = 0; // 학생 수
int[] scores = null; // 학생 점수 저장 배열
int topScore = 0; // 학생 최고점
int total = 0; // 전체 점수
Double avg = 0.0; // 평균 점수
// 프로그램 시작
program: while (true) {
System.out.println("-----------------------------------------------------------");
System.out.println("1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료");
System.out.println("-----------------------------------------------------------");
System.out.print("선택> ");
sel = Integer.parseInt(sc.nextLine()); // 원하는 버튼 선택
switch (sel) {
case 1: {
System.out.print("학생수> ");
student_count = Integer.parseInt(sc.nextLine());
scores = new int[student_count]; // 학생 몇명 있는지 값을 받아 배열 크기 설정
break;
}
case 2: {
// 학생 점수 입력 반복문
for (int i = 0; i < student_count; i++) {
System.out.print("scores[" + i + "]> ");
scores[i] = Integer.parseInt(sc.nextLine());
}
break;
}
case 3: {
// 점수 출력 반복문
for (int i = 0; i < scores.length; i++) {
System.out.println("scores[" + i + "]> " + scores[i]);
}
break;
}
case 4: {
// 토탈 점수
for (var score : scores) {
total += score;
if (topScore < score) {
topScore = score;
}
}
// 평균 점수 double casting
avg = (double) total / student_count;
System.out.println("최고 점수: " + topScore);
System.out.printf("평균 점수: %.1f%n", avg);
break;
}
case 5: {
// 프로그램 올 스탑, 스캐너 메서드 종료
System.out.println("프로그램 종료");
sc.close();
break program;
}
default: {
// 선택지 제외 다른 숫자 오류 표기
System.out.println("선택지에 맞게 다시 선택해 주세요");
}
}
}
}
}
코드 리뷰를 주석에 달아만든 코드, 차후 개선 사항을 밑에 추가해야한다.