ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 과제1 - TwoDArrayTest03
    개발자 수업/Java 2021. 10. 8. 15:16

    위의 내용이 출력되도록 코딩하기

     

    정답 코드

    import java.util.Scanner;
    
    public class TwoDArrayTest03 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    
    		int[][] student;				// 2차원 배열 선언
    		// 반 수, 인원, (점수)합계, (점수)전체 합계
    		int count = 0, num = 0, sum = 0, total = 0;
    		//반 별 평균
    		double avg = 0.0;
    		//반 별 평균의 합(=>평균)
    		double avgTotal = 0.0;
    		
    		System.out.print("반 수 입력 : ");
    		count = sc.nextInt();
    		student = new int[count][];
    		
    		System.out.println("2차원 배열 주소 : " + student);
    		System.out.println("1차원 배열방 크기 : " + student.length);
    		
    		for(int i=0; i<student.length; i++) {	// 2차원 배열
    			System.out.printf("%d반의 인원 : ", i+1);
    			num = sc.nextInt();					// 반 인원
    			student[i] = new int[num];			// 1차원 배열 생성
    			
    			for(int j=0; j<student[i].length; j++) {
    				System.out.printf("%d반의 %d번의 점수 : ", i+1, j+1);
    				student[i][j] = sc.nextInt();	// 실제 반 인원의 점수를 받음
    			}
    			System.out.println();
    		}
    		
    		for(int i=0; i<student.length; i++) {
    			for(int j=0; j<student[i].length; j++) {
    				System.out.println(student[i][j]);
    			}
    		}
    		
    		System.out.println("반\t합계\t평균\t");
    		System.out.println("-------------------------------------");
    		
    		for(int i=0; i<student.length; i++) {
    			sum = 0;								// 반 별 합계
    			
    			for(int j=0; j<student[i].length; j++) {
    				sum += student[i][j];
    			}
    			total += sum;							// 전체 합계
    			avg = (double)sum/student[i].length;	// 반 별 평균
    			avgTotal += avg;						// 반 펼 평균 합계
    			
    			System.out.printf("%d반\t%d\t%.1f\n", i+1, sum, avg);
    		}
    		
    		avgTotal = avgTotal / student.length;		// 반 펼 평균의 평균
    		System.out.printf("계\t%d\t%.1f\n", total, avgTotal);
    		
    		sc.close();
    	}
    }

     

    원리 쉽게 설명

    public class TwoDArrayTest04 {
    	public static void main(String[] args) {
    		int[][] array = {
    				{95, 86, 100, 55},
    				{83, 92, 96},
    				{78, 83, 93, 87, 88, 77, 10}
    		};
    	
    		int sum = 0;
    		double avg = 0.0;
    		int count = 0;
    		
    		for(int i=0; i<array.length; i++) {
    			for(int j=0; j<array[i].length; j++) {
    				sum += array[i][j];
    				count++;
    			}
    		
    		}
    		avg = (double)sum/count;
    		System.out.println("위 가변 배열의 합계 : " + sum);
    		System.out.printf("위 가변 배열의 평균 : %.1f", avg);
    	}
    }

    '개발자 수업 > Java' 카테고리의 다른 글

    13. Review  (0) 2021.10.11
    12. 상속과 오버라이딩  (0) 2021.10.08
    11. 컬렉션 프레임워크  (0) 2021.10.07
    10. 배열  (0) 2021.10.06
    9. 객체지향프로그램3  (0) 2021.10.06

    댓글