2017-11-17 3 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; 
    } 
} 

Ich möchte dafür groß drucken. Wie mache ich das? Ich habe versucht, System.out.println(biggest(null,big) in der Hauptmethode, aber das hat nicht funktioniert.Drucken von einer Methode

+0

Was ist Ihre Anforderung? Füllfunktion, die Sie verwenden oder nicht? Wenn Sie am größten (null, groß) anrufen, müssen Sie innerhalb des größten nach Null suchen. – Abhishek

+1

'fill' wird nie aufgerufen, auch wird das Array nicht zurückgegeben, so dass es verloren geht. Machen Sie 'fill' return' grid' und übergeben Sie es an 'biggest'. Initialisiere "groß" irgendwo. – yacc

+0

Bitte denken Sie daran, die Antworten, die Sie erhalten haben, zu verbessern und/oder zu akzeptieren. – yacc

Antwort

1

Ich habe Lösung

Vor allem aber gehen durch https://stackoverflow.com/help/how-to-ask

Ihre Lösung

ich einige Änderungen in Ihrem Code.

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

Vielen Dank;) –

1

Folgende Korrekturen vorgenommen werden müssen:

  1. fill Bedürfnisse grid zurückzukehren.
  2. biggest benötigt big nicht als Parameter (es macht wenig Sinn). Es sollte als Integer.MIN_VALUE beginnen.
  3. Es ist nicht erforderlich, big innerhalb biggest zu drucken.
  4. In Ihrer for Schleife, die Werte von c durchläuft, sollten Sie c++ anstelle von r++ haben.
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; 
} 

Dann können Sie biggest auf einem tatsächlichen zweidimensionalen Matrix nennen (null ist nicht eine tatsächliche zweidimensionale Anordnung):

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

Vielen Dank für die Hilfe. –

Verwandte Themen