从方法打印

时间:2017-11-17 03:20:39

标签: java

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)放在main方法中,但这不起作用。

2 个答案:

答案 0 :(得分: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;
}

}

答案 1 :(得分:1)

需要进行以下更正:

  1. fill需要返回grid
  2. biggest并不需要big作为参数(这没有多大意义)。它应该以{{1​​}}开始。
  3. 无需在Integer.MIN_VALUE内打印big
  4. 在循环播放biggest值的for循环中,您应该c而不是c++
  5. r++

    然后你可以在一个实际的二维数组上调用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; } biggest不是一个真正的二维数组):

    null