im은 숫자를 입력 할 때 내 Java 프로그램에서 문제가 발생하여 색인이 범위를 벗어난 오류를 반환합니다. 선은 66의 wheres 그 위로 붙잡히고있다.사용자 입력이있는 Java 2D 배열
arrayName[row][col] = holder;
문제를 파악하는 데 도움이 될 것입니다.
package workfiles;
import java.util.*;
import java.util.Scanner;
public class prob2 {
// Do not modify this method
public static void main(String[] args) {
try
{
int [][] iArray = enter2DPosArray();
System.out.println("The original array values:");
print2DIArray(iArray);
int [][] tArray = transposition(iArray);
System.out.println("The transposed array values:");
print2DIArray(tArray);
}
catch (InputMismatchException exception)
{
System.out.println("The array entry failed. The program will now halt.");
}
}
// A function that prints a 2D integer array to standard output
// It prints each row on one line with newlines between rows
public static void print2DIArray(int[][] output) {
}
// A function that enters a 2D integer array from the user
// It raises an InputMismatchException if the user enters anything other
// than positive (> 0) values for the number of rows, the number of
// columns, or any array entry
public static int[][] enter2DPosArray() throws InputMismatchException {
int row=0;
int col=0;
int arow=0;
int acol=0;
int holder=0;
Scanner numScan = new Scanner(System.in);
while (row<=0){
System.out.print("How many rows (>0) should the array have? ");
row = numScan.nextInt();
}
while (col<=0){
System.out.print("How many columns (>0) should the array have? ");
col = numScan.nextInt();
}
int[][] arrayName = new int[row+1][col+1];
while (arow < row) {
if (acol<=col)
System.out.println("Enter a positive (> 0) integer value: ");
holder = numScan.nextInt();
// !!!line 66 begins right here!!!
arrayName[arow][acol] = holder;
acol ++;
if (acol>col)
acol=0;
arow ++;
System.out.println("Enter a positive (> 0) integer value: ");
holder = numScan.nextInt();
arrayName[arow][acol] = holder;
acol ++;
}
//arrayName[i][j]
numScan.close();
return arrayName;
}
public static int[][] transposition(int [][] arrayName) {
int r=0, c=0;
int[][] transpose = new int[r][c];
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
transpose[i][j] = arrayName[j][i];
}
}
return transpose;
}
}
'경우 (ACOL <= COL)'아마 당신은 임무있어 일부'{''}'중괄호 – Frakcool
이 오른쪽에'// 라인 66'에 댓글을 추가하십시오 (당신의 들여 쓰기 하더군요) 장소;) 우리는 세지 않으려 고합니다. –
투표가 가능한 오타로 닫습니다. –