Tworzenie nowej tablicy z wyciągniętych z tablicy liczb minimalnych i maksymalnych

Odpowiedz Nowy wątek
2019-02-16 21:16
0

Witam,

Potrzebuję pomocy, ponieważ utknąłem i nie mam pomysłu jak przekopiować minimalne i maksymalne wartości do nowej tablicy int [5][2], które wyciągnąłem z każdej kolumny tablicy dwuwymiarowej int[5][5]. Tablicę [5][2] chciałbym wyświetlić metodą Arrays.toString tak jak to zrobiłem dla tablicy int[5][5]. Poniżej kod tego co do tej pory stworzyłem:

import java.util.Arrays;
import java.util.Random;

public class zad19 {

    public static void main(String[] args) {

        int[][] tablica = new int[5][5];
        int[][] tablicaminmax = new int[5][2];
        int i = 0;
        int j = 0;
        int min, max;
        Random losowanie = new Random();

        for (i = 0; i < tablica.length; i++) {
            for (j = 0; j < tablica[i].length; j++) {
                tablica[i][j] = losowanie.nextInt(10) - 5;
            }
            System.out.println(Arrays.toString(tablica[i]));

        }
        System.out.println();

        for (i = 0; i < tablica.length; i++) {
            max = Integer.MIN_VALUE;
            for (j = 0; j < tablica[i].length; j++)
                if (tablica[i][j] > max)
                    max = tablica[i][j];

            System.out.println("Maksymalna liczba w kolumnie " + (i + 1) + " = " + max);
        }

            System.out.println();

            for (i = 0; i < tablica.length; i++) {
                min = Integer.MAX_VALUE;
                for (j = 0; j < tablica[i].length; j++)
                    if (tablica[i][j] < min)
                        min = tablica[i][j];

                System.out.println("Minimalna liczba w kolumnie " + (i + 1) + " = " + min);
            }

    }
}
edytowany 2x, ostatnio: hauleth, 2019-02-16 23:07
Poniżej jest aktualnie pustka. - szweszwe 2019-02-16 21:19

Pozostało 580 znaków

2019-02-16 21:32
0

Skoro to są dwa inty to dlaczego chcesz to kopiować do dwuwymiarowej tablicy?
A dobra, wiem co chcesz zrobić.
No to w pętli maxów zrób:
tablicaminmax[0][i] = max
a w drugiej:
tablicaminmax[1][i] = mix

edytowany 2x, ostatnio: szweszwe, 2019-02-16 21:35
Pokaż pozostałe 7 komentarzy
:| chciałem zobaczyć to co nada nie dziala. - szweszwe 2019-02-16 22:05
Skasowalem to co mi zaproponowales. Wpisalem dokladnie tak jak Ty mi zaproponowales. Malo tego nawet pozniej troche pozmienialem zamiast [0][i] dalem [0][j] a nawet [i][0] ale o ile jestem w stanie wpisac inty do tablicy dla max o tyle przy min mi sie wykrzacza program. - dopfz 2019-02-16 22:15
Nie możesz po prostu pokazać kodu? Może dałeś to nie tam gdzie trzeba. - szweszwe 2019-02-16 22:16
masz na samym dole ten kod. Po pierwsze program wyrzuca blad a po drugie nie wiem gdzie wrzucic linijke kodu odpowiedzialna za wyrzucenie wartosci nowej tablicy z min i max. - dopfz 2019-02-16 22:21
No pod spodem. Jak już sobie te wartości zapiszesz w tablicy. - szweszwe 2019-02-16 22:25

Pozostało 580 znaków

2019-02-16 22:03
0
import java.util.Arrays;
import java.util.Random;

public class zad19 {

    public static void main(String[] args) {

        int[][] tablica = new int[5][5];
        int[][] tablicaminmax = new int[5][2];
        int i = 0;
        int j = 0;
        int min, max;
        Random losowanie = new Random();

        for (i = 0; i < tablica.length; i++) {
            for (j = 0; j < tablica[i].length; j++) {
                tablica[i][j] = losowanie.nextInt(10) - 5;
            }
            System.out.println(Arrays.toString(tablica[i]));

        }
        System.out.println();

        for (i = 0; i < tablica.length; i++) {
            max = Integer.MIN_VALUE;
            for (j = 0; j < tablica[i].length; j++)
                if (tablica[i][j] > max)
                    max = tablica[i][j];

            System.out.println("Maksymalna liczba w kolumnie " + (i + 1) + " = " + max);
        }

            System.out.println();

            for (i = 0; i < tablica.length; i++) {
                min = Integer.MAX_VALUE;
                for (j = 0; j < tablica[i].length; j++)
                    if (tablica[i][j] < min)
                        min = tablica[i][j];

                System.out.println("Minimalna liczba w kolumnie " + (i + 1) + " = " + min);
            }

    }
}

Pozostało 580 znaków

2019-02-16 22:20
0
import java.util.Arrays;
import java.util.Random;

public class zad19 {

    public static void main(String[] args) {

        int[][] tablica = new int[5][5];
        int[][] tablicaminmax = new int[2][5];
        int i = 0;
        int j = 0;
        int min, max;
        Random losowanie = new Random();

        for (i = 0; i < tablica.length; i++) {
            for (j = 0; j < tablica[i].length; j++) {
                tablica[i][j] = losowanie.nextInt(10) - 5;
            }
            System.out.println(Arrays.toString(tablica[i]));

        }
        System.out.println();

        for (i = 0; i < tablica.length; i++) {
            max = Integer.MIN_VALUE;
            for (j = 0; j < tablica[i].length; j++)
                if (tablica[i][j] > max)
                    max = tablica[i][j];
            tablicaminmax[0][i] = max;

            System.out.println("Maksymalna liczba w kolumnie " + (i + 1) + " = " + max);
        }

            System.out.println();

            for (i = 0; i < tablica.length; i++) {
                min = Integer.MAX_VALUE;
                for (j = 0; j < tablica[i].length; j++)
                    if (tablica[i][j] < min)
                        min = tablica[i][j];
                tablicaminmax[1][i] = min;

                System.out.println("Minimalna liczba w kolumnie " + (i + 1) + " = " + min);
            }
       ** System.out.println(Arrays.toString(tablicaminmax[i]));**
    }
}
edytowany 2x, ostatnio: dopfz, 2019-02-16 22:35
No, ale miało być [2][5] a nie [5][2] - szweszwe 2019-02-16 22:23
gdzie pod spodem ma byc ten sout? sprawdz teraz to co ja wpisuje do programu. Linijki kodu zaznaczone dwiema gwiazdami - dopfz 2019-02-16 22:29
W tych linijkach zapisujesz do tablicy tablicaminmax. Więc poza drugim forem możesz sobie z niej wypisać to co zapisałeś. - szweszwe 2019-02-16 22:32
czy tak jak teraz? Nie dziala - Array out of bounds exception Zastanawialem sie jeszcze nad: Arrays.copyOf(array,4) to copy the first 4 elements, truncating the rest. of Arrays.copyOfRange(array,1,5) to copy elements 1-4 if you need the middle of an array. ale jak to zastosowac by wypisac tam tylko maxy i miny. - dopfz 2019-02-16 22:36

Pozostało 580 znaków

2019-02-16 22:39
System.out.println(Arrays.toString(tablicaminmax[0]));
System.out.println(Arrays.toString(tablicaminmax[1]));

Albo na całości:
System.out.println(Arrays.deepToString(tablicaminmax));

edytowany 1x, ostatnio: szweszwe, 2019-02-16 22:50
hmm dziala, ale ja chcialem w macierzy [2][5] - dopfz 2019-02-16 22:47

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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