• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyznaczenie 3 największych elementów tablicy -Java

Object Storage Arubacloud
0 głosów
2,306 wizyt
pytanie zadane 2 marca 2019 w Java przez mn130496 Gaduła (3,530 p.)

Witam

Jestem studentem informatyki i jakiś czas temu zacząłem naukę javy. Ostatnio na zajęciach dostałem takie zadanie :

Napisz program, który :

1)  utworzy tablicę N liczb całkowitych i wypełni je wartościami losowymi (N - stała),

2) wypisze na ekran zawartość tablicy,

-3) Wyznaczy   największy oraz najmniejszy element tablicy,

4) wyznaczy 3 największe elementy tablicy (nie sortować tablicy)

5) wyznaczy średnią arytmetyczną elementów tablicy,

6) Wyświetli na ekranie zawartość tablicy w odwrotnej kolejności (od ostatniego elementu do pierwszego).

7) odwróci kolejność elementów w tablicy (element ostatni staje się pierwszym, itd.)

Napisałem taki kod programu:

public static void main(String[] args) {
        int tab[] = new int[20];
        int odwrotnie[] = new int[tab.length];
        Random rand = new Random();
        //Zapełnienie tablicy wartościami losowymi
        for(int i=0; i < 20; i++) {
            tab[i] = rand.nextInt(51) +99;
        }
        //Wyświetlenie zawartości tablicy
        for(int i=0; i < 20; i++ ) {
            System.out.println("tab[" +i+ "]: " +tab[i]);
        }
        //Wyznaczenie największego i najmniejszego elementu tablicy
        int max = tab[0];
        int min = tab[0];
        for (int i = 0; i<tab.length; i++) {
            if (tab[i] > max ) {
                max = tab[i];
            }else if (tab[i] < min) {
                min = tab[i];
            }
        }
        System.out.println("Największy elemęt tablicy: "+max);
        System.out.println("Największy elemęt tablicy: "+min);
        //Wyznaczenie 3 największych elementy tablicy
        //Wyznaczenie średmiej arytmetycznej elemętów tablicy
        double średnia, suma=0;
        int długość = tab.length;
        for (int i=0; i < tab.length; i++) {
             suma = suma + tab[i];
        }
        średnia = suma / długość;
        System.out.println("średnia elemętów tablicy wynosi:" +średnia);
        //Wyświetlenie tablicy w odwrotnej kolejności;
        for (int i = tab.length-1; i > 0;){
            for (int j = 0; j < tab.length;j++){
                odwrotnie[j] = tab[i];
                i--;
            }
        }
        System.out.println("Wyświetlenie tablicy w odwrotnej kolejności");
        System.out.println(Arrays.toString(odwrotnie));
        //odwrucenie kolejności elemętów tablicy
    }
}

Mam problem z punktem 4 i 7, nie wiem jak wyznaczyć te największe 3 elementy i jak zamienić elementami indeksy tablicy(żepy ostatni był pierwszym itd.). Czy ktoś może mi pomóc w tym zadaniu?. Z góry dziękuję

pozdrawiam

1 odpowiedź

+1 głos
odpowiedź 2 marca 2019 przez Szlugas Użytkownik (800 p.)
wybrane 2 marca 2019 przez mn130496
 
Najlepsza
int max2 = min; // Przypisujemy wartość drugiego najwiekszego elementu na minimum, aby uniknac sytuacji w ktorej tab[0] byloby najwiekszym elementem tablicy.
        for (int i=0; i<tab.length; i++){
            if(tab[i]>max2 && tab[i]!=max){  //Tutaj wykluczamy najwiekszy element tablicy, analogicznie zrobimy z trzecim (musimy wykluczyc max i max2).
                max2 = tab[i];
            }
        }
        System.out.println("Drugi największy elemęt tablicy: "+max2);

Mój pomysł na to jest taki. Pozdrawiam

komentarz 2 marca 2019 przez mn130496 Gaduła (3,530 p.)
Dziękuję ci za pomoc

Podobne pytania

0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 26 stycznia 2018 w C i C++ przez Artur313 Użytkownik (790 p.)
0 głosów
4 odpowiedzi 1,211 wizyt
pytanie zadane 7 listopada 2018 w Java przez Tom_Ja Dyskutant (7,970 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...