본문 바로가기
  • 마침표 보다 쉼표를 나타내자
프로그래밍/JAVA

명품자바 3장 10번 문제

by Y코더 2022. 12. 8.
728x90

이 문제는 나를 많이 생각하게 만들어준 문제이다.

public class Q10_1 {

	public static void main(String[] args) {
		
		//4x4배열선언
		int arr1[][] = new int[4][4];
		
		//1~10까지 값을 랜덤하게 배열에 넣기
		for(int i=0; i<4; i++) {
			for(int j=0; j<4; j++) {
				int P = (int)(Math.random()*10+1);
				arr1[i][j] = P;
			}
		}
		//저장된 배열에 0을 6개 랜덤하게 넣기
		for(int x=0; x<6; x++) {
			int n = (int)(Math.random()*4);
			int m = (int)(Math.random()*4);

			if(arr1[n][m] == 0) {				//만일 이미 값이 0이였다면
				x--;							//반복횟수를 차감하여 한번 더 코드실행
			}else {
				arr1[n][m] = 0;					//좌표가 랜덤생성된 값으로 0으로 만듬(이 코드가 if문 보다 앞에 있으면 0이되어 걸려버림)
			}
		}
		//배열대로 출력하기
		for(int i=0; i<4; i++) {
			for(int j=0; j<4; j++) {
				System.out.print(arr1[i][j]+"\t");
			}
			System.out.println();
		}
	}
}
728x90