본문 바로가기
JAVA

Test097.java / 배열 / 배열과 난수(Random 클래스)처리

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

// 배열과 난수 처리(※ Random 클래스 활용)


// 사용자로부터 임의의 정수를 입력받아
// 그 정수의 갯수만큼 난수(1~100)를 발생시켜서 배열에 담아내고
// 배열에 담겨있는 데이터들 중
// 가장 큰 값과 가장 작은 값을 선택하여
// 결과를 출력하는 프로그램을 구현한다.

// 실행 예)
// 발생시킬 난수의 갯수 입력 : 10
// (50 7 24 81 72 45 61 38 1 99 → 무작위로 발생한 정수들...)
// int[] arr = {50, 7, 24, 81, 72, 45, 61, 38, 1, 99} → 배열에 담아내기(배열 구성)
// 가장 큰 값 : 99, 가장 작은 값 : 1
// 계속하려면 아무 키나 누르세요...

import java.util.Scanner;
import java.util.Random;

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

		System.out.print("발생시킬 난수의 갯수 입력 : ");
		int size = sc.nextInt();
		int[] arr = new int [size];

		// 무작위 정수(난수)를 발생시키기 위해서는
		// 난수 발생전용 객체가 필요하다.
		// → 『java.util.Random』

		Random rd = new Random();

		// ※ Random 클래스의 『nextInt()』 메소드
		//	  0 ~ 매개변수로 넘겨받은 정수 n-1 까지의 수 중
		//    무작위 정수(난수) 1개를 발생시킨다.

		//rd.nextInt(10)	// 0~9 까지의 수 1개만 나옴

		// 테스트 : System.out.println(rd.nextInt(10));
		// 0 ~ 9 까지의 범위 내에서 무작위 정수 한 개 발생~!~!

		// 배열 구성
		//for (int i = 0;i<size ;i++ )    입력받은 수 만큼의 난수 발생시키기 위한 배열
		for (int i = 0;i<arr.length ;i++ )
		{
			 arr[i] = rd.nextInt(100) + 1; // → 1 ~ 100 [정답]

			// rd.nextInt(101)???  → 0 ~ 100
			// rd.nextInt(100); → 0 ~ 99
		}

		
		

		



		
		for (int i = 0;i<arr.length ;i++ )
		{
			System.out.printf("%3d", arr[i]);
		}
		System.out.println();
		int k, s;  // 최댓값, 최솟값
		k=s=arr[0];

		for (int i = 0;i < arr.length ;i++ )
		{
			if (arr[i]> k) 
				k = arr[i];
			if (arr[i]<s)
				s = arr[i];
		}
		System.out.printf("가장 큰 값 : %d, 가장 작은 값 : %d", k, s);

		//--==>>
		/*
			발생시킬 난수의 갯수 입력 : 30
			43 27 10 79 59 25 85 58 92 80 75 96  4 50 18 84  5 41 16 72 83 85 93  1  2 51 35 21 98 84
			계속하려면 아무 키나 누르십시오 . . .


		*/

	}
}

// 실행 결과

/*
발생시킬 난수의 갯수 입력 : 100
 40 55 94 84 93  3 76  5 35 22 27 66 41 94  9 44 87 65 77 44 58  5 17 10  8 55 61 83 80 22 59  2 75 47 28 35 54 92  1 20 16 70 19 84 12 76 93 72 21 81 96 56 74 90 45 52 84 25 90  1 55 22 35 92 92  5 12 74 54 93 85 74 41 76 95 95  4 55 45 77 47 46 94 71 80 57 29 83 15 93 53 19 97 54 96 49 97 42 79 86
가장 큰 값 : 97, 가장 작은 값 : 1계속하려면 아무 키나 누르십시오 . . .

*/
728x90

댓글