Mckinsley 아폴론 :
기본적으로 I는 2 개 차원 어레이를 수신하는 별도의 열을 추가하고 열 저장 이전에 생성 된 여분의 행에서 각 열의 결과들의 합을 계산하는 기능을 갖는다. 여기 내 코드는 다음과 같습니다
public static int[][] sum(int[][] array) {
int tempArray[][] = new int[array.length + 1][array[0].length];
for (int column = 0; column < tempArray[0].length; column++) {
int total = 0;
for (int row = 0; row < tempArray.length; row++) {
total += tempArray[row][column];
}
tempArray[tempArray.length][column] = total;
}
return tempArray;
}
나는 결과를 인쇄하는 for 루프를 실행할 때 그래서 함수를 참조 어떤 이유에 대한 ArrayIndexOutOfBounds의 오류가 발생합니다. 나는 내 논리가 정확한지 생각하지만 난 그것을 작업 할 수없는 것. 좀 더 문맥 배열의 값은 사용자에 의해 입력된다. 누구든지 대답합니다 감사합니다!
메릴랜드 골람 라흐만 Tushar :
더 라인 아래에 배열의 행보다 인덱스에 액세스하기 때문에 당신은 ArrayIndexOutOfBounds을 얻고있다 :
tempArray[tempArray.length][column] = total;
문제를 해결할 라인을 다음으로 교체 :
tempArray[tempArray.length - 1][column] = total;
당신의 합계 논리가 버그가 그러나 당신의 코드는 여전히 작동하지 않습니다. 다음 라인으로 총을 계산한다.
total += tempArray[row][column];
하지만 당신의 tempArray은 값하지만 0을 가지고 있지 않습니다. 당신은 다음과 같은 배열의 값으로 tempArray을 시작하십시오이 메이크업을 해결하려면
int tempArray[][] = new int[array.length + 1][array[0].length];
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[0].length; j++) {
tempArray[i][j] = array[i][j];
}
}
희망이가 문제를 해결하는 것입니다. 코딩 해피!