이것은 인트로 Java 클래스에 대해 연구하고있는 학교 문제입니다. 할당은 무작위로 생성 된 2 진수의 8 x 8 행렬을 생성하는 프로그램을 작성하고, 프로그램 열이 모두 0이고 주요 및 부 대각선도 0으로 구성되어 있는지 프로그램 검사를 수행하는 것입니다. 주요 대각선은 왼쪽 위 모서리에서 오른쪽 아래 모서리까지 (이 경우 arrayName[0][0]
에서 arrayName[8][8]
까지) 형성된 대각선이며 작은 대각선은 행렬의 오른쪽 위 모서리에서 왼쪽 하단 모서리까지가는 대각선입니다.2D 배열의 대각선 및 대각선 대각선이 0으로 구성되어 있는지 찾기
중요한 부분과 작은 부분의 대각선을 검사하는 부분을 제외하고는 모든 것이 작동합니다. 왜 이것이 작동하지 않는지 알 수 없습니다. 제가 해왔 던 것은 대각선을 따라 0의 수를 세는 것입니다. 그리고 그 수가 8이면, 당신은 0으로 구성된 대각선을가집니다.
public static void majorDiagonal(int[][] board) {
byte count = 0;
for(int row = board.length - 1, offsetNumber = board.length - 1; row > 0; row--, offsetNumber--)
for(int column = board.length - 1; column > 0; column--)
if(board[row][offsetNumber] == 0) count++;
if(count == 8) System.out.println("All zeroes on the major diagonal");
}
public static void minorDiagonal(int[][] board) {
byte count = 0;
for(int row = board.length - 1, offsetNumber = 0; row > 0; row--, offsetNumber++)
for(int column = board.length - 1; column > 0; column--)
if(board[row][offsetNumber] == 0) count++;
if(count == 8) System.out.println("All zeroes on the minor diagonal");
}
내가 for 루프에서 계산에 의해 주요 대각선 찾기 위해 시도 할 때 I가 발생 흥미로운 오류, 즉 :
for(int row = 0; row< board.length; row++)
for(int column = 0; column < board.length; column++)
if(board[row][row] == 0) count++;
여기가 크고 작은 배열이 두 가지 방법은
코드는 작동하지 않지만 대각선이 모두 1과 단일 0이면 변수 count가 8이 아니더라도 "주 대각선에 모두 제로"가 인쇄됩니다.
희망 사항입니다. 도움을 주셔서 감사합니다.
모두 좋다. 최종 검사에서 리터럴 '8'대신에 '길이'를 사용할 가치가 있지만 (루프에서 사용하기 때문에) 약간 더 일반화해야한다. –
좋은 점은, 원래 질문에서 인쇄 라인을 복사하여 붙였을뿐입니다. –
세부 사항을 가져 주셔서 감사합니다. 너 한테 빚 졌어. – maxvcore