Wyszukanie min i max w ostatnim wierszu tablicy dwuwymiarowej

0

Witam chciałem zrobić program który wypisuje do tablicy dwuwymiarowej o wymiarach 4x5 liczby losowe i szuka wartość najmniejszą i największą w ostatnim wierszu. Niby wszystko działa ale okazuje się że program nie bierze pod uwagę piątej kolumny, więc gdy w piątej kolumnie wylosuje się liczba największa lub najmniejsza to niestety ale brane są liczby z kolumn 1. 2. 3. i 4. . Proszę o poradę co z tym fantem zrobić może ewentualnie zmienić zupełnie kod. Pozdrawiam i dziękuję JakubT.

 package losowanie2;

import java.util.Random;


public class Losowanie2 {

  
    public static void main(String[] args) {
     
        Random los = new Random ();
        int[][] tab = new int [4][5];
        
         for (int w = 0; w < tab.length; w++){
            for (int k = 0; k < tab[w].length; k++){
                tab[w][k] = los.nextInt(21)-10 ;
                System.out.print((tab[w][k]) + " ");
            }
            System.out.println();
        }    
int min1=tab[0][0],max1=tab[0][0], min2=tab[1][0], max2=tab[1][0];

int min3=tab[2][0], max3=tab[2][0], min4=tab[3][0], max4=tab[3][0];

for (int k=0;k<tab.length;k++){

if (tab[0][k]<min1){
min1=tab[0][k];
}
if (max1<tab[0][k]){
max1=tab[0][k];
}
if (min2>tab[1][k]){
min2=tab[1][k];
}
if (max2<tab[1][k]){
max2=tab[1][k];
}
if (min3>tab[2][k]){
min3=tab[2][k];
}
if (max3<tab[2][k]){
max3=tab[2][k];
}
if (min4>tab[3][k]){
min4=tab[3][k];
}
if (max4<tab[3][k]){
max4=tab[3][k];

}
}
System.out.println();
System.out.println("Min4: "+min4);
System.out.println("Max4: "+max4);


    }
}
1

A co by było gdyby tobie kazano przerobić powyższy kod tak aby było 4000 wierszy?
Przerób to na tablice oraz nadaj sensowne nazwy zmiennym (i,k - nic tobie nie mówią, użyj y,x) - natychmiast zauważysz błąd.

0

Dziękuje za wskazówkę :) Co prawda dużo nie zmieniłem i nie wiem czy to fachowo wyszło, ale działa. Mógłby Pan zerknąć na nowy kod?

package losowanie2;

import java.util.Random;

public class Losowanie2 {

    public static void main(String[] args) {

        Random los = new Random();
        int[][] tab = new int[4][5];

        for (int y = 0; y < tab.length; y++) {
            for (int x = 0; x < tab[y].length; x++) {
                tab[y][x] = los.nextInt(21) - 10;
                System.out.print((tab[y][x]) + " ");
            }
            System.out.println();
        }
        int min = tab[3][0], max = tab[3][0];

        for (int x = 0; x < tab.length+1; x++) {

            if (min > tab[3][x]) {
                min = tab[3][x];
            }
            if (max < tab[3][x]) {
                max = tab[3][x];

            }
        }
        System.out.println();
        System.out.println("Minimalna liczba 4 wiersza to: " + min);
        System.out.println("Maksymalna liczba 4 wiersza to: " + max);

    }
}

dodanie znacznika <code class="java"> - Furious Programming

0

for (int y = 0; y < tab.length; y++) - tak masz przy losowaniu i wyświetlaniu
for (int x = 0; x < tab.length+1; x++) - tak masz przy szukaniu min/max 4-go wiersza
jeżeli nadal nie widzisz to zmień rozmiar tablicy na [4][15]

1 użytkowników online, w tym zalogowanych: 0, gości: 1