• 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

VPS Starter Arubacloud
0 głosów
2,447 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ź 224 wizyt
pytanie zadane 26 stycznia 2018 w C i C++ przez Artur313 Użytkownik (790 p.)
0 głosów
4 odpowiedzi 1,379 wizyt
pytanie zadane 7 listopada 2018 w Java przez Tom_Ja Dyskutant (7,970 p.)

92,963 zapytań

141,928 odpowiedzi

321,161 komentarzy

62,297 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...