JAVA
JAVA 실습문제. 배열
yeonee 여니
2023. 4. 9. 22:19
728x90
반응형
SMALL
문제1
- 길이가 10인 배열을 선언하고 1부터 10까지의 값을 반복문을 이용하여
순서대로 배열 인덱스에 넣은 후 그 값을 출력하세요
예시)
1 2 3 4 5 6 7 8 9 10
정답)
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
System.out.print(arr[i]+" "));
}
문제2
- 길이가 10인 배열을 선언하고 1부터 10까지의 값을 반복문을 이용하여
역순으로 배열 인덱스에 넣은 후 그 값을 출력하세요.
예시)
ex.
10 9 8 7 6 5 4 3 2 1
정답)
int[] arr = new int[10];
int num = arr.length;
for (int i = 0; i < arr.length; i++) {
arr[i] = num--;
System.out.print(arr[i]+" "));
}
문제3
- 사용자에게 입력 받은 양의 정수만큼 배열 크기를 할당하고
1부터 입력 받은 값까지 배열에 초기화한 후 출력하세요.
예시)
ex.
양의 정수 : 5
1 2 3 4 5
정답)
Scanner sc = new Scanner(System.in);
System.out.print("양의 정수 : ");
int num = sc.nextInt();
int [] arr = new int[num];
for(int i=0; i<arr.length; i++) {
arr[i] = i+1;
System.out.print(arr[i]+" ");
}
문제4
- 10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고,
1~10 사이의 난수를 발생시켜 배열에 초기화한 후 출력하세요.
예시)
ex.
9 7 6 2 5 10 7 2 9 6
정답)
int [] arr = new int[10];
for(int i=0; i<arr.length; i++) {
arr[i]=(int)(Math.random()*10+1);
System.out.print(arr[i]+" ");
문제5
- 10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고
1~10 사이의 난수를 발생시켜 중복된 값이 없게 배열에 초기화한 후 출력하세요.
예시)
ex.
4 1 3 6 9 5 8 10 7 2
정답-1)
public void practice11() {
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 10 + 1);
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
i--;
break;
}
}
}
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
}
정답-2)
int[] arr = new int[10]; // 10칸의 배열
int[] checkedArr = new int[11]; // 11칸의 배열 (인덱스는 0부터시작인데 10까지 카운팅해야하니
// 11이 들어가야함)
for (int i = 0; i < arr.length; i++) // i < 0 = 참이니
{
int random = (int) (Math.random() * 10 + 1); // random에 랜덤값을 넣음 (10)
if (checkedArr[random] == 1) // checkedArr[10]에 1이들어가있는지 확인 (디폴트는 0)
{
i--; // false이므로 if문 생략
continue;
}
arr[i] = random; // arr[10]=10
checkedArr[random] = 1; // arr[10]=1
}
System.out.println(Arrays.toString(arr));
}
문제6
- 10개의 값을 저장할 수 있는 정수형 배열을 선언 및 할당하고
1~10 사이의 난수를 발생시켜 배열에 초기화 후 배열 전체 값과 그 값 중에서 최대값과 최소값을 출력하세요
예시)
ex.
5 3 2 7 4 8 6 10 9 10
최대값 : 10
최소값 : 2
정답)
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int) (Math.random() * 10 + 1);
System.out.print(arr[i]+" ");
}
int min = arr[0];
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
} else if (min > arr[i]) {
min = arr[i];
}
}
System.out.print("\n최대값 : " + max);
System.out.print("\n최소값 : " + min);
}
728x90
반응형
LIST