-> int[] subject_arr = new int[5]; // 1행 5열
----------------------
값 ==> | 0 | 0 | 0 | 0 | 0 |
----------------------
index ==> 0 1 2 3 4
-> int [][] point_arr = new int [4][3]; // 4행 3열
값 ==>
--------------
| 0 | 0 | 0 |
--------------
| 0 | 0 | 0 |
--------------
| 0 | 0 | 0 |
--------------
| 0 | 0 | 0 |
--------------
index ==>
----------------------------- // Ex) 국어 영어 수학
| [0][0] | [0][1] | [0][2] | ----------------------------------------
| [1][0] | [1][1] | [1][2] | 이순신의 점수 |
| [2][0] | [2][1] | [2][2] | 엄정화의 점수 |
| [3][0] | [3][1] | [3][2] | 유관순의 점수 |
----------------------------- 홍길동의 점수 |
-> int [][] num_arr = new int[4][]; // 4행 null 열 , 학생별 과목수를 다르게 줄 수 있다.
Ex) num_arr[1] = new int[2]; // 1행은 2열로 설정
jumsu_arr.length => 행의 길이 (사람수)
jumsu_arr[i].length => 열의 길이 (과목수)
int [][] jumsu_arr = {{90,80,70},{80,85,76},{80,85,76},{85,70,90},{60,80,50}};
// 이순신 엄정화 홍길동 공유 아이유
int [] total_arr = new int[jumsu_arr.length]; // 학생들 총점 저장
String[] result_arr = new String[jumsu_arr.length]; // 등수제외한 성적결과 저장
for(int i=0; i<jumsu_arr.length; i++) { // .length를 통해 행 길이 파악 (사람)
String result ="";
int sum = 0;
for(int j=0; j<jumsu_arr[i].length; j++) { // jumsu_arr[i].length를 통해 열 길이 파악 (과목)
result += jumsu_arr[i][j] + "\t";
sum += jumsu_arr[i][j];
} // end of for--------------------------
double avg = Math.round((double)sum/jumsu_arr[i].length*10)/10.0; // 과목수를 나눠야한다.
char grade = ' '; // 기본값
switch((int)avg/10) { // switch는 정수(long 제외), char,string 타입만 가능
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
break;
} // end of switch()---------------
result += sum + "\t" + avg + "\t" + grade + "\t";
result_arr[i] = result; // sum, avg, grade 배열 추가
total_arr[i] = sum;
} // end of for----------------------------
for(int i=0; i<total_arr.length; i++) { // total_arr.length 는 사람수
int rank = 1; // 기본값 설정
for(int j=0; j<total_arr.length; j++) {
if(i != j && total_arr[i] < total_arr[j]) { // i != j -> 자기자신과 할 필요 없음
// total_arr[i] < total_arr[j]
// 다른 값보다 자기가 작을 경우 (점수가 낮을 경우)
rank++;
} // end of if-----------------
} // end of for-----------------------
System.out.println(result_arr[i] + rank); // 기존 배열에 rank 배열 추가
} // end of for----------------
int sum_kor = 0,sum_eng = 0,sum_math = 0;
for(int i = 0;i < jumsu_arr.length; i++) {
sum_kor += jumsu_arr[i][0];
sum_eng += jumsu_arr[i][1];
sum_math += jumsu_arr[i][2];
} // end of for----------------------------
String subject_sum = "";
subject_sum+= sum_kor+"\t" + sum_eng+"\t" + sum_math;
System.out.println(subject_sum);
int[] arr_subject_total = new int[jumsu_arr[0].length]; // 각 과목별 총점을 저장시켜두는 곳이다.
for(int i=0; i<arr_subject_total.length; i++) {
for(int j=0; j<jumsu_arr.length;j++) {
arr_subject_total[i] += jumsu_arr[j][i];
} // end of for-----------------------
} // end of for-------------------------------
double avg_kor = 0, avg_eng = 0, avg_math = 0;
avg_kor = Math.round((double)sum_kor/jumsu_arr.length*10)/10.0;
avg_eng = Math.round((double)sum_eng/jumsu_arr.length*10)/10.0;
avg_math = Math.round((double)sum_math/jumsu_arr.length*10)/10.0;
System.out.println(avg_kor + "\t "+ avg_eng + "\t" + avg_math);
String str_subject_total = "", str_subject_total_avg = "";
for(int i =0; i<arr_subject_total.length;i++) {
str_subject_total += arr_subject_total[i] + "\t";
str_subject_total_avg
+= Math.round((double)arr_subject_total[i]/jumsu_arr.length*10)/10.0 + "\t";
} // end of for----------------------
System.out.println(str_subject_avg);
my.day09.a.twodimension.array -> Main_twodimension_array_1, Main_twodimension_array_2