본문 바로가기
문제를 풀어보자

JAVA) 이것이 자바다 챕터2~11 확인문제 7번~9번

by 휴일이 2022. 10. 7.

 

이것이 자바다

객체지향프로그래밍 파트에 있는

확인 문제를 풀어보았습니다

 

 

 

 

7번 : 주어진 배열 항목에서 최대값을 출력하는 코드(for문 이용)

 

//문제 7번
		int[] array = {1,5,3,8,2}; //배열의 최대값 8을 출력해줘야함
		int a=0; //최대값을 저장할 변수
		for(int i=0;i<array.length;i++) {
			if(a<array[i]) { //a가 array[i]보다 작을 때만
				a=array[i]; //array[i](배열)을 a에 저장함
			}
		}
		System.out.println(a); //a == 8

 

 

결과

 

 

 

8번 : 주어진 배열 항목의 전체 합과 평균을 구해 출력하는 코드 작성(중첩 for문)

 

//문제 8번 ->배열 항목의 전체합, 평균을 구해 출력(중첩for)
		int[][] array1 = {
				{95,86},			//0
				{83,92,96},			//1
				{78,83,93,87,88}	//2
				//	0   1  2  3  4
		};
		//array1[3][5]
		int b=0; //총 합
		int count=0; //평균 구하기 위해 더한 횟수

		for(int i=0;i<array1.length;i++) { //array1의 열 숫자 012 만큼 돌 때
			for(int j=0;j<array1[i].length;j++) { //array1의 행 만큼 돈다 [0]일때 2번 [1]일때 3번...~
				b+=array1[i][j]; //[i]일때는 [j]번 만큼 돌 때까지 멈춘다,
				//첫번째 줄일 때 첫번째 줄에 있는 변수 갯수만큼 돈다는 얘기
				count++; //한번 돌릴 때마다 몇번 돌렸나 1씩 더해줌
			}
		}

		System.out.println("총 합 "+b);
		System.out.println("평균"+(double)(b/count));

 

 

결과

 

 

 

문제9번:학생 점수 분석 프로그램

학생 수만큼 점수를 입력하고, 점수 리스트와 최고점수, 평균점수를 가져온다

 

 

//문제 9번
		//스캐너로 직접 입력받고, while문을 이용해 최고점수,평균점수 출력하는 코드 작성

		Scanner sc = new Scanner(System.in);
		boolean flag = true;
		int q=0;
		int su=0;
		int num=0;
		int sum=0;
		int cc=0;
		int score[] = new int[10];
		while(flag) {
			
			System.out.println("1.학생수 2.점수입력 3.점수리스트 4.분석 5.끝내기");
			System.out.print("선택>");
			q=sc.nextInt();
			
			switch(q) {
			
			case 1: //학생수
				System.out.print("학생수>");
				su=sc.nextInt(); //학생 수를 받음
				break;
				
			case 2: //점수입력
				for(int i=0;i<su;i++) { //받은 학생 수만큼 점수입력되게 돌림
					System.out.print("점수 입력>");
					num=sc.nextInt(); //점수입력
					score[i]=num; //점수를 0부터 학생수만큼 추가해서 저장
					sum+=num; //점수를 sum에 계속 추가해서 더함
					if(num>cc) {
						cc = num;
					}
				}
				break;
			case 3: //점수리스트
				for(int i=0;i<su;i++) { //받은 학생 수 만큼 돌림
					System.out.println(score[i]);
				}
				break;
			case 4: //분석 (최고점수 평균점수)
				System.out.println("점수"+sum); //아까 점수를 계속 더한 총합
				System.out.println("최고 점수"+cc); //최고점수
				System.out.println("평균 점수"+(double)sum/su); //총점에 학생수 나누기
				break;
			case 5:
				flag=false;
				break;
			}



		}

 

 

 

결과

 

 

 

 

복습하는 기분으로 푸는데 재미있었다!

다차원 배열을 이용하는 8번은 이해가 잘 안 돼서

나중에 다시 풀어봐야 할듯...

중첩 for문이 매우 어렵다

728x90