12. 배열(Array) (입력받은 배열의 최대값/ 100개의 랜덤 정수의 평균) [ Tutorial12 ]
참고) [ Ctrl + Shift+ O ] : import 단축키
배열의 선언방법
int[] array = new int[100];
- 여기서 new라는 것은 어떠한 인스턴스를 만들 때 쓰는 약속 예약어이다.
- 대괄호[]로 배열을 선언하고, 배열의 크기를 우항에 넣는다.
- 변수 array에는 100개의 배열을 가진다.
- index라는 것은 0부터 출발해서, 99까지 차지한다. (크기 -1까지)
[1] 원하는 개수만큼 배열을 생성 하고, 입력한 다음, 최대값을 구하는 프로그램을 작성해보자.
1. 최대값을 반환하는 max()매쏘드를 하나 만들어준다.
public static int max(int a, int b) {
return a>b?a : b;
}
2. 메인함수 안에 Scanner 를 선언한다. sc를 이용해서 사용자에게 배열의 크기를 입력받을 것이다. print도 찍어준다.
3. sc를 이용해서 정수를 받고, int number에 입력 받는다. 입력받을 변수를 이용해서 배열을 만든다.
4. for문을 통해 0부터 number-1까지 1씩 증가시키면서 index값으로서 사용하며, for문 안에서는 배열을 입력받고 그것을 배열안에 넣어준다.
5. int result =-1;을 선언하고, for문을 돌리면서, max()함수를 이용해 최대값이 들어가는 result 와 각 배열 index[0]부터 [number-1]까지 최대값을 비교해서 result에 집어넣어준다.
6. 최대값 result를 출력한다.
import java.util.Scanner;
public class Main {
public static int max(int a, int b) {
return a>b?a : b;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("생성할 배열의 크기를 입력하세요 : ");
int number = sc.nextInt();
int[] array = new int[number];
for(int i = 0; i <number ;i++) {
System.out.print("index["+i+"]"+"번째 배열에 넣을 값을 입력해주세요(양수) : ");
array[i] = sc.nextInt();
}
int result = -1;
for (int i = 0; i<number ; i++) {
result=max(result, array[i]);
}
System.out.println("배열 중 최대값 : "+result);
}
}
7. 출력값
생성할 배열의 크기를 입력하세요 : 5
index[0]번째 배열에 넣을 값을 입력해주세요(양수) : 1
index[1]번째 배열에 넣을 값을 입력해주세요(양수) : 10
index[2]번째 배열에 넣을 값을 입력해주세요(양수) : 54
index[3]번째 배열에 넣을 값을 입력해주세요(양수) : 3
index[4]번째 배열에 넣을 값을 입력해주세요(양수) : 2
배열 중 최대값 : 54
[2] 100개의 랜덤 정수의 평균을 구하는 프로그램을 작성해보자.
1. 100개짜리 배열을 선언하고, for문에는 index만큼 0부터 99까지 돌린다.
2. 각 배열[index]마다, Math.random() * 100 + 1 을 넣어준다. 이 때 double이므로, int로 캐스팅 해야한다.
이때, Math.random()은 0 <= x < 1 사이의 랜덤한 수를 가져오기 때문에, 100을 곱해서 0<= 100x< 100 가 되고, +1을 더해서 1<=x<101 이게 된다. 이제 형변환으로 정수가 나오게 된다.
3. for문을 돌려서 array[i] 100개를 모두 sum에 넣은 뒤에, 그 값을 출력해준다.
int[] array= new int[100];
for(int i = 0;i<100;i++) {
array[i] = (int) (Math.random() * 100 + 1);
}
int sum = 0;
for(int i = 0; i<100;i++) {
sum+=array[i];
}
System.out.println("100개의 랜덤 정수의 평균 : "+ sum/100);;
}