-1
我想在我的二維數組中找到最長的一系列水平的O,並打印出最長的路徑。我沒有看到我的邏輯錯誤,我一直在閱讀,但沒有看到我的錯誤。我一直呆在這裏約2天。我在想,也許我的發現最大長度聲明有什麼問題?第58行和第31行出現越界錯誤。對於我在做錯的任何建議都將非常感激。二維數組查找char元素(s)
public class game {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner kbd = new Scanner(System.in);
System.out.println("ENTER A SINGLE INTEGER: ");
int n = kbd.nextInt();
char[][] mazeValue = new char[n][n];
System.out.println("ENTER A PATH: ");
for(int i = 0; i < mazeValue.length; i++){
for(int j = 0; j< mazeValue[i].length; j++){
mazeValue[i][j]= kbd.next().charAt(0);
}
}
printMaze(mazeValue);
horizontalPath(mazeValue);
}
public static void printMaze(char mazeValue[][])
{
System.out.println("MAZE");
for(int i = 0; i < mazeValue.length; i ++)
{
for (int j = 0; j < mazeValue[i].length; j++)
{
System.out.printf("%4c",mazeValue[i][j]);
}
System.out.printf("\n");
}
}
public static void horizontalPath(char mazeValue[][])
{
int horizontalPath=0;
int maxHorizontalCount=0;
int i;
int j;
for(i= 0; i<mazeValue.length; i++){
for(j = 0; j<mazeValue[i].length; j++){
if(mazeValue[i][j]== 'o'){
horizontalPath = horizontalPath + mazeValue[i][j];
}
}
if(horizontalPath < mazeValue[i][j])
maxHorizontalCount = mazeValue[i][j];
}
System.out.printf("Longest horizontal path row %d length %d",i,maxHorizontalCount);
}
}
你在這裏看到任何行號嗎?請說明這些情況到底發生了什麼。 – tnw 2015-02-23 21:02:11
函數調用:horizontalPath(); 31 – 2015-02-23 21:05:31
第二條if語句:if(horizontalPath
2015-02-23 21:06:10