배열안에 배열이 있는 형태이다
2차원 배열
int[ ][ ] array2 = new int[2][3];
배열안에 배열이 들어있는 형태
int[][] arr2 ; // 2차원배열
int[][][] arr3; // 3차원배열
int arr4[][] = new int[][]{{1,2,3},{4,5,6}}; //2칸짜리 배열각칸에 3칸짜리배열넣기
int[] arr5[] = { {1,2,3},
{4,5,6},
{7,8,9}}; //초기화하며 선언
// 가변배열
int[][] arr6 = new int[3][]; // 일부의 크기만 지정 가능,
arr6[0] = new int[3];
arr6[1] = new int[5];
arr6[2] = new int[10];
2차원배열 접근
2차원 인덱스까지 접근해서 사용한다
array2[0][1];
array2[0] = 10; // 값을 저장할 수 없다
array2[0] = new int[5]; //배열은 저장 가능
array2[0][1] = 10;
array2[1][0] = 100;
array2[1][1] = 1000; // 2차원까지 접근해서 값 저장
2차원 배열의 길이
.length를 이용해서 하려면 인덱스로 접근해야한다
System.out.println(array2[0].length)
int[][] arrlen = new int[4][4];
System.out.println(arrlen[0].length); // 4
for(int i = 0; i< arr4.length; i++){
for(int j = 0; j< arr4[i].length; j++){
System.out.println(arr4[i][j]);
}
}
SCORE
package d_array; import java.util.Arrays; public class Score { public static void main(String[] args) { /* * 우리반 모두의 국어 영ㅇ ㅓ수학 사회 과학 오라클 자바 점수를 0~100 까지 랜덤생성해주시고 아래와 같이추력해주세요 */ String[] name = { "강지원", "김동민", "김동희", "김민지", "김용진", "김인혁", "김진용", "박범영", "박병규", "배현태", "심민규", "여인욱", "이나정", "이승민", "이영섭", "이윤혜", "이지향", "임정혁", "임형묵", "장성보", "정선영", "정회립", "차경석", "최준영", "허지영" }; int[][] scores = new int[25][7]; // [학생수][과목수] int[] sum = new int[scores.length]; // 합계 double[] avg = new double[scores.length]; // 평균 int[] rank = new int[scores.length]; // 석차 int[] sub_sum = new int[7]; // 과목별 총점 double[] sub_avg = new double[7]; // 과목별 평균 // for 점수 랜덤 지정 + 개인합계, 과목별 총점,평균 구하기 for (int i = 0; i < scores.length; i++) { for (int j = 0; j < scores[i].length; j++) { scores[i][j] = (int) (Math.random() * 101); sum[i] += scores[i][j]; rank[i] = 1; sub_sum[j] += scores[i][j]; } avg[i] = sum[i] / (double) scores[i].length; } // 석차구하기 for (int i = 0; i < sum.length; i++) { for (int j = 0; j < sum.length; j++) { if (sum[i] < sum[j]) { rank[i]++; } } } // 과목 평균 구하기 for (int i = 0; i < sub_avg.length; i++) { sub_avg[i] = sub_sum[i] / (double) scores.length; } // 출력 하기 System.out .printf("이름\t 국어\t 영어\t 수학\t 사회\t 과학\t ORACLE\t Java\t 합계\t 평균\t 석차\n"); // for (int i = 0 ; i<scores.length; i++){ // System.out.printf("%s\t", name[i]); // for(int j = 0; j< scores[i].length; j++){ // System.out.printf("%d\t",scores[i][j]); // } // System.out.printf("%d\t", sum[i]); // System.out.printf("%.2f\t", avg[i]); // System.out.printf("%d\n", rank[i]); // } // 석차료 정렬 for (int sortrank = 1; sortrank < scores.length + 1; sortrank++) { for (int i = 0; i < scores.length; i++) { if (rank[i] == sortrank) { System.out.printf("%s\t", name[i]); for (int j = 0; j < scores[i].length; j++) { System.out.printf("%d\t", scores[i][j]); } System.out.printf("%d\t", sum[i]); System.out.printf("%.2f\t", avg[i]); System.out.printf("%d\n", rank[i]); } } } // 과목별 합 , 평균 출력 System.out.printf("과목합계\t"); for (int j = 0; j < sub_sum.length; j++) { System.out.printf("%d\t", sub_sum[j]); } System.out.println(); System.out.printf("과목평균\t"); for (int j = 0; j < sub_avg.length; j++) { System.out.printf("%.2f\t", sub_avg[j]); } } }
반응형
'IT > JAVA' 카테고리의 다른 글
| [JAVA] 예외처리 (0) | 2022.01.11 |
|---|---|
| [JAVA] JVM ( java virtual machine ) (0) | 2022.01.11 |
| [JAVA]배열 (0) | 2020.07.01 |
| [JAVA] Math.round() , Math.random() (0) | 2020.06.29 |
| [JAVA] 반복문 for, while, do-while, 이름붙은 반복문, continue, break (0) | 2020.06.29 |