2012-01-09 4 views
0

私は3つの要素が大きい新しい配列の各行から最小値と最大値を入力しようとしています。私は3行を持っていますmin [0] max [0]、min [1]、max [1]、min [2]、max [2]を印刷する方法は?1次元配列の2次元配列から1行のMIN値とMAX値を格納していますか?

これは私がこれまで行ってきたことです。 vrsta =行、 stolpec =列、各行について

import java.util.Arrays; 


public class KozarciMarmelade { 


static final int vrsta=3; 
static final int stolpec=10; 
static int [][] t=new int[vrsta][stolpec]; 
static int mini=3; 
static int maxi=3; 
static int [] mintab=new int [3]; 
static int [] maxtab=new int [3]; 
public static void main(String[] args) { 



    zapolniTabelo(); 
    izpisiTabelo(t); 
    findMax(t); 
    findMin(t); 


} 

public static void zapolniTabelo() {  

    for(int i=0;i<vrsta;i++){ 
     for(int j=0;j<stolpec;j++){ 
      t[i][j]=(int)(Math.random()*60+670); 

     } 
    } 



} 

public static void izpisiTabelo(int [][] t) { 
    for(int k=0;k<t.length;k++){ 
     System.out.print((k+1)+".izmena: "); 
     for(int l=0;l<t[k].length;l++){ 


      System.out.print(t[k][l] +" "); 
     } 
     System.out.println(); 
    } 

} 
public static void findMax(int [][] t){ 



    for(int i=0;i<t.length;i++){ 
     maxi=t[i][0]; 
     for(int j=1;j<t[i].length;j++){ 
      if(maxi<t[i][j]) 
       maxi=t[i][j]; 


     } 
     System.out.println("The largerst element in row "+ (i+1)+": "+maxi); 

    } 
} 
public static void findMin(int [][] t){ 

    for(int i=0;i<t.length;i++){ 
     mini=t[i][0]; 
     for(int j=0;j<t[i].length;j++){ 
      if(mini>t[i][j]) 
       mini=t[i][j]; 
     } 
     System.out.println("Te smallest ellement in a row "+(i+1)+": "+mini); 
    } 

    } 
} 
+1

これは宿題のように感じています問題。これまでに何を試しましたか? –

+0

http://mattgemmell.com/2008/12/08/what-have-you-tried/ – jbranchaud

+0

宿題の場合は宿題を追加してください。 –

答えて

1

次のように何かをする:

Arrays.sort(array); 

min = array[0]; 
max = array[array.length-1]; 
+0

それはO(n log n)です。それはO(n)で行うことができます。 –

0

2つのアレイに格納する。

int[] mins=new int[matrix.length],maxs=new int[matrix.length]; 
for(each row in matrix) 
{ 
    min[index of this row]=Integer.MAX_VALUE; 
    max[index of this row]=Integer.MIN_VALUE; 
    for(int i:row){ 
     if(i<min[index]) min[index]=i; 
     if(i>max[index]) max[index]=i; 
    } 
} 
関連する問題