Javaベース(2 D配列)

2499 ワード

3月29日内容まとめ
今日のレイアウト

多次元配列はアドレスとアドレスで接続されていると考えられる.文字列を保存する様子に似ている.
num変数名には行のアドレス値が含まれ、インデックスはnum[0]、num[1]...行の値はカラムのアドレス値を含み、インデックスはnum[0][0]、num[0][1]、num[0][2]である.背中がある.

上図のように、表現もいいです.
package study_0329;

public class study_0329 {

	public static void main(String[] args) {
		// 배열은 메모리에 연속적인공간을 할당받고 값을 차곡차곡 저장하기위해 탄생했다.
		
		
		/* 문1) 한사람의 국어,영어,수학 점수를 가지고 개별합계와 평균을구하기
		 
		
		int[] score= {75,85,60};
		int sum=0;
		double avg=0.0;
		
		sum=score[0]+score[1]+score[2];
		avg=(double)sum/3;
		
		for(int i=0;i<score.length;i++) {
			System.out.print(score[i]+",");
		}
		
		System.out.println("합계는"+sum);
		System.out.println("평균은"+avg);*/
		
		
		/*
		 * 문2) 국어,영어,수학 점수를 가지고 개별합계와 평균을 구하고 각 과목별 전체합계와 전체평균
		 * 	번호 국어 영어 수학 합계  평균
		 * =============================
		 * 	 1   ?   ?  ?   ?   ?
		 *   2   ?   ?  ?   ?   ?
		 *   ...
		 * =============================
		 *  
		 */
		
		//int[][]jumsu=new int[행의개수][열의개수];
		//int[][]jumsu=new int[학생수][과목개수];
		//int[][]jumsu=new int[4][3];
		
		int[][]jumsu= {{75,85,70},{85,95,85},{60,55,40},{55,65,60}};
		
		int korsum=0,engsum=0,mathsum=0;
		double koravg=0.0,engavg=0.0,mathavg=0.0;
		
		System.out.println("   번호  국어  영어  수학  합계  평균");
		System.out.println("===================================");
		
		for(int i=0;i<jumsu.length;i++) { //전체학생수
			int sum=0; //지역변수를 쓰므로써 바깥for문 1번돌고 0리셋이 되므로써 안쪽for문 합만 구해짐
			double avg=0.0; //지역변수를 쓰므로써 바깥for문 1번돌고 0리셋이 되므로써 안쪽for문 평균만 구해짐
			
			System.out.printf("%5d",i+1);//번호
			
			for(int j=0;j<jumsu[i].length;j++) { // i번째 학생의 과목수
				
				sum+=jumsu[i][j];
				
				System.out.printf("%5d", jumsu[i][j]);
						
			}
			avg=(double)sum/jumsu[i].length;
			System.out.printf("%5d %6.2f", sum, avg);
	        System.out.println();
	        
	        korsum+=jumsu[i][0];
	        engsum+=jumsu[i][1];
	        mathsum+=jumsu[i][2];
	        
		}
		koravg=(double)korsum/jumsu.length;
		engavg=(double)engsum/jumsu.length;
		mathavg=(double)mathsum/jumsu.length;
		
		
		System.out.println("===================================");
		System.out.printf("합계  %5d %5d %5d\n",korsum,engsum,mathsum);
		System.out.printf("평균   %4.2f %4.2f %4.2f\n",koravg,engavg,mathavg);
	
		
	}

}