Хранить значения MIN и MAX из строки из массива 2 dim в массиве 1 dim? - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь поместить минимальное и максимальное значения из каждой строки в новый массив размером 3 элемента.У меня есть 3 строки. Как распечатать min [0] max [0], min [1] и max [1], min [2] и max [2]?

Это то, что я сделалдо сих пор.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);
    }

    }
}

Ответы [ 2 ]

1 голос
/ 09 января 2012

Для каждой строки выполните следующее:

Arrays.sort(array);

min = array[0];
max = array[array.length-1];
0 голосов
/ 09 января 2012

, чтобы хранить их в 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;
    }
}
...