2017-11-17 12 views
-4
public class Simple2DArray { 

    public static void main(String[] args) { 

    } 
    public static void fill() 
    { 
     int[][] grid = new int[5][5]; 
     for(int r=0;r<grid.length;r++) 
     { 
      for(int c=0;c<grid[r].length;r++) 
      { 
       grid[r][c] = (int)(Math.random()*100); 
      } 
     } 
    } 
    public static int biggest(int[][] grid, int big) 
    { 
     for(int r=0;r<grid.length;r++) 
     { 
      for(int c=0;c<grid[r].length;r++) 
      { 
       if(grid[r][c]> big) 
       { 
        big = grid[r][c]; 
       } 
      } 
     } 
     System.out.println(big); 
     return big; 
    } 
} 

私はそれを大きく印刷したいと思います。これはどうすればいいですか?私はSystem.out.println(biggest(null,big)をメインメソッドに入れてみましたが、うまくいきませんでした。方法からの印刷

+0

あなたの要件は何ですか?あなたが使用しているかどうかを入力してください。あなたが最大の(ヌル、ビッグ)コールしている場合は、最大の内側のヌルをチェックする必要があります。 – Abhishek

+1

'fill'は決して呼び出されませんし、配列を返さないので紛失します。 'fill'を' grid'を返すようにして、これを '最大'に渡します。どこかで 'big 'を初期化する。 – yacc

+0

あなたが持っている回答をアップヴォートしたり、受け入れたりすることを検討してください。 – yacc

答えて

1

私はあなたのコード内のいくつかの変更を行っhttps://stackoverflow.com/help/how-to-ask

あなたのソリューション

を経る私は解決策

しかし、最初にすべてのを得ました。

public class Simple2DArray { 

public static void main(String[] args) { 

    int[][] grid = fill(); 

    System.out.println(biggest(grid, 20)); 

} 

public static int[][] fill() 
{ 
    int[][] grid = new int[5][5]; 
    for(int r=0;r<grid.length;r++) 
    { 
     for(int c=0;c<grid[r].length;c++) 
     { 
      grid[r][c] = (int)(Math.random()*100); 
     } 
    } 

    System.out.println("Input 2D"); 

    for(int r=0;r<grid.length;r++) 
    { 
     for(int c=0;c<grid[r].length;c++) 
     { 
      System.out.print(grid[r][c]); 
      System.out.print("\t"); 
     } 

     System.out.println(""); 
    } 

    return grid; 
} 

public static int biggest(int[][] grid, int big) 
{ 
    if (grid != null) { 
     for (int r = 0; r < grid.length; r++) { 
      for (int c = 0; c < grid[r].length; c++) { 
       if (grid[r][c] > big) { 
        big = grid[r][c]; 
       } 
      } 
     } 
    } 

    return big; 
} 

} 
+0

ありがとう;) –

1

次の修正がなされる必要があります。

  1. fillgridを返す必要があります。
  2. biggestは、パラメータとしてbigを必要としません(ほとんど意味がありません)。それはInteger.MIN_VALUEとして開始する必要があります。
  3. biggestに印刷する必要はありません。
  4. ループの値がcでループするforループでは、r++の代わりにc++が必要です。
public static int[][] fill() 
{ 
    int[][] grid = new int[5][5]; 
    for(int r=0;r<grid.length;r++) 
    { 
     for(int c=0;c<grid[r].length;c++) 
     { 
      grid[r][c] = (int)(Math.random()*100); 
     } 
    } 
    return grid; 
} 

public static int biggest(int[][] grid) 
{ 
    int big = Integer.MIN_VALUE; 
    for(int r=0;r<grid.length;r++) 
    { 
     for(int c=0;c<grid[r].length;c++) 
     { 
      if(grid[r][c]> big) 
      { 
       big = grid[r][c]; 
      } 
     } 
    } 
    return big; 
} 

次に、あなたは(nullは、実際の二次元配列ではありません)実際の2次元アレイ上biggestを呼び出すことができます。

public static void main(String[] args) 
{ 
    int[][] array = fill(); 
    System.out.println(biggest(array)); 
} 
+0

ありがとうございました。 –