본문 바로가기
Coding Note/Java

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));

 

댓글