Java 3-5) for문 예제_ 값 입력받아 배열 동적할당, 합계 / 평균 / 최고점수 / 우등생 수 구하기, 배열에 저장하기
by 푸린이2021. 12. 10.
사용자가 원하는 학생 수로 점수를 입력받는다. 총점, 평균 그리고 최고점수를 구한다. 입력 받은 점수 중에서 90점 이상인 학생 수는 몇명인가? 그리고 그 점수들만을 새로운 배열에 저장하도록 한다.
* 기획하기 //변수와 배열 선언 및 초기화
// 입력 // 학생 수 몇명? // 학생들의 점수 입력
// 총점 // 평균 // 최고점수 // 90점 이상 받은 학생 수(우등생 수) // 우등생의 점수를 배열에 저장
// 결과 출력
//변수와 배열 선언 및 초기화
int count = 0;
int number[] = null; // 동적할당을 해줘야하는 요소의 초기화는 null
// 입력
// 학생 수 몇명?
System.out.print("몇 명의 통계를 구하시겠습니까? = ");
count = sc.nextInt();
// 할당 먼저 해주기 (동적할당)
number = new int[count];
// 학생들의 점수 입력
for (int i = 0; i < number.length; i++) {
System.out.print((i + 1) + "번째 점수 = ");
number[i] = sc.nextInt();
}
// 총점
int sum = 0;
for (int i = 0; i < number.length; i++) {
sum = sum + number[i];
}
// 평균
double avg = (double)sum / number.length;
// 최고점수
int max = number[0];
for (int i = 1; i < number.length; i++) {
if(number[i] > max) {
max = number[i];
}
}
// 90점 이상 받은 학생 수(우등생 수)
int high = 0;
for (int i = 0; i < number.length; i++) {
if(number[i] >= 90) {
high++;
}
}
// 우등생의 점수를 배열에 저장
int highCount[] = new int[high];
int n = 0;
for (int i = 0; i < number.length; i++) {
if(number[i] >= 90) {
highCount[n] = number[i];
n++;
}
}
// 결과 출력
System.out.println(Arrays.toString(number));
System.out.println("합계 : " + sum);
System.out.println("평균 : " + avg);
System.out.println("최고점수 : " + max);
System.out.println("90점이상 점수의 학생 수 : " + high);
System.out.println(Arrays.toString(highCount));
댓글