본문 바로가기
JAVA

Test086.java / 배열 / 사용자로부터 임의의 학생 수를 입력받고 그만큼의 점수(정수형)를 입력받아, 합, 평균 편차를 구하여 결과를 출력하기

by universedevelope 2022. 9. 10.
/*==========================
	  ■■■ 배 열 ■■■
===========================*/

// 배열의 기본적 활용

// ○ 과제
//	  사용자로부터 임의의 학생 수를 입력받고
//	  그만큼의 점수(정수 형태)를 입력받아
//	  전체 학생 점수의 합, 평균, 편차를 구하여
//	  결과를 출력하는 프로그램을 구현한다.
//	  단, 배열을 활용하여 처리할 수 있도록 한다.

// 실행 예)
// 학생 수 입력 : 5
// 1번 학생의 점수 입력 : 90
// 2번 학생의 점수 입력 : 82
// 3번 학생의 점수 입력 : 64
// 4번 학생의 점수 입력 : 36
// 5번 학생의 점수 입력 : 98

// >> 합 : 370
// >> 평균 : 74.0
// >> 편차 : 
// 90 : -16.0
// 82 : -8.0
// 65 : 10.0
// 36 : 38.0
// 98 : -24.0


import java.util.Scanner;


public class Test086
{
	public static void main(String[] args)		
	{	
		Scanner sc = new Scanner(System.in);

		// 주요 변수 선언-------------------------------------
		int stu;		// 학생 수

		// 사용자에게 학생 수 입력받을 메세지 출력
		System.out.print("학생 수 입력 : ");

		// 사용자가 입력할 변수 대입
		stu = sc.nextInt();

		int sum=0;		// 총합담을 변수
		int avg;		// 평균담을 변수 (총합 / 학생수)
		int def=0;		// 편차담을 변수 (평균 - 해당학생점수)
		
		int[] arr = new int[stu]; // - 점수 담을 배열
		int[] arr2 = new int[stu]; //  - 편차 담을 배열
		// 연산 및 처리----------------------------------------


		// 학생 수 만큼의 점수 입력메세지를 출력할 구문 생성(반복문)
		for (int i=0; i<stu ;i++ )
		{
			System.out.printf("%d번 학생의 점수 입력 : ", (i+1));
			arr[i] = sc.nextInt();		// 입력과 배열생성 동시에 이루어지게끔
			sum += arr[i];				// 배열의 총합을 연산
			
		}
		System.out.println();

		
		avg = sum / stu; // 평균 연산

		// 배열 생성하여 학생의 점수단위로 편차 대입하기
		for (int i = 0; i < stu ;i++ )
		{
			arr2[i] = avg - arr[i];
		}



		
		// 결과 출력
		System.out.printf("\n >> 합 : %d\n", sum);		// 누적합
		System.out.printf(" >> 평균 : %d\n", avg);		// 평균
		System.out.printf(" >> 편차 : \n");				// 개행 출력 후
		for (int i=0; i < arr.length ; i++)
		{
			System.out.printf("%d : %d\n", arr[i], arr2[i]);		// 점수 : 편차의 형식을 갖는 배열출력
		}

		

		
	
		// 입출력 기능 : Scanner
	}
}

// 실행 결과

/*
학생 수 입력 : 3
1번 학생의 점수 입력 : 100
2번 학생의 점수 입력 : 90
3번 학생의 점수 입력 : 80


 >> 합 : 270
 >> 평균 : 90
 >> 편차 :
100 : -10
90 : 0
80 : 10
계속하려면 아무 키나 누르십시오 . . .
*/
728x90

댓글