본문 바로가기
수업(국비지원)/Java

[Java] chap5 : 배열 Array - Exam1-5

by byeolsub 2023. 4. 14.

📌 배열 Exam1

package chap5;
/*
 *1. 정수형(int) 배열 5개를 생성 
 *2. 1~10사이의 임의의 수 5개를 저장
 *3. 배열의 숫자의 합계, 평균을 출력하기
 */
public class Exam1 {
	public static void main(String[] args) {
		//1. 정수형(int) 배열 5개를 생성 
		int[] arr = new int[5];
		for(int i=0;i<arr.length;i++) {
		//2. 1~10사이의 임의의 수 5개를 저장
			arr[i]=(int)(Math.random()*10)+1;
			System.out.print(arr[i]+",");
		}
		//3. 배열의 숫자의 합계, 평균을 출력하기
		int sum = 0;
		for(int i=0;i<arr.length;i++) {
			sum+=arr[i];
		}
		System.out.println();
		System.out.println("배열숫자의 합:"+sum);
		//정수가 아니고 소숫점 이하 값까지 나타내고 싶다면 sum 혹은 arr.length 앞에 (double)!
		// sum 도 arr.length 도 정수값만을 표현함.
		System.out.println("배열 평균:"+(double)sum/arr.length);
	}
}

📌 배열 Exam2

package chap5;

import java.util.Scanner;

/*
 * 10진수를 입력받아 8진수로 변경하여 출력하기
 */
public class Exam2 {
	public static void main(String[] args) {
		int[] octal = new int[10];
		System.out.println("10진수를 입력하세요");
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int divnum = num, index = 0;
		while (divnum != 0) {
			octal[index++] = divnum % 8;
			divnum /= 8;
		}
		System.out.print(num + "의 8진수 : ");
		for (int i = index - 1; i >= 0; i--) {
			System.out.print(octal[i]);
		}
		System.out.println();
	}
}

 📌 배열 Exam3

package chap5;

/*
 * command 숫자를 입력받아서 자리수의 합을 출력하기 ?
 * 
 * java Exam3 1234
 * 
 * 1+2+3+4+5 = 15
 */
public class Exam3 {
	public static void main(String[] args) {
		if (args.length == 0) {
			System.out.println("command 라인에 숫자를 입력하세요");
			return;
		}
		int sum = 0;
		String nums = args[0]; // "12345"
		//'1'= nums.charAt(0) : '1(49)'-'0(48)' = 1
		for (int i = 0; i < nums.length(); i++) {
			sum += nums.charAt(i) - '0';
			System.out.print(nums.charAt(i) + ((i == nums.length() - 1) ? "=" : "+"));
		}
		System.out.println(sum);
	}
}

📌 배열 Exam4

package chap5;

/*
 * arr 배열의 행의 합, 열의 합, 전체 합 출력하기
 */
public class Exam4 {
	public static void main(String[] args) {
		int[][] arr = { { 10, 20 }, { 30, 40 }, { 50, 60 } };
		/*
		 * 0행 : 10+20 = 30 
		 * 1행 : 30+40 = 70 
		 * 2행 : 50+60 = 110 
		 * 0열 : 10+30+50 = 90 
		 * 1열 : 20+40+60 = 120 
		 * 전체 합 : 210
		 */
		int[] colsum = new int[2];
		int totsum = 0;
		for (int i = 0; i < arr.length; i++) {
			int sum = 0;
			for (int j = 0; j < arr[i].length; j++) {
				sum += arr[i][j];
				colsum[j] += arr[i][j];
				totsum += arr[i][j];
			}
			System.out.println(i + "행의 합 : " + sum);
		}
		for (int i = 0; i < colsum.length; i++) {
			System.out.println(i + "열의 합 : " + colsum[i]);
		}
		System.out.println("전체의 합" + totsum);
	}
}

📌 배열 Exam5

package chap5;
/*
 * arr 배열의 행의 합, 열의 합, 전체 합 출력하기
 */
public class Exam5 {
	public static void main(String[] args) {
		int[][] arr = {{1},{10,20},{30,40,5,6,7},{50,60,70} };
		/*
		 * 0행 : 1
		 * 1행 : 30
		 * 2행 : 88
		 * 3행 : 180
		 * 0열 : 91
		 * 1열 : 120
		 * 2열 : 75
		 * 3열 : 6
		 * 4열 : 7
		 * 전체 합 :
		 */
		int maxcol =0;
		for(int i=0;i<arr.length;i++) {
			if(maxcol<arr[i].length)
				maxcol = arr[i].length;
		}
		int[] colsum = new int[maxcol];
		int totsum = 0; //전체 합
		for (int i = 0; i < arr.length; i++) {
			int sum = 0;
			for (int j = 0; j < arr[i].length; j++) {
				sum += arr[i][j]; //행의 합
				colsum[j] += arr[i][j];//열의 합
				totsum += arr[i][j];
			}
			System.out.println(i + "행의 합 : " + sum);
		}
		for (int i = 0; i < colsum.length; i++) {
			System.out.println(i + "열의 합 : " + colsum[i]);
		}
		System.out.println("전체의 합" + totsum);
	}
}