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

Pętla do wypisania liczb z tablicy

Object Storage Arubacloud
0 głosów
912 wizyt
pytanie zadane 23 maja 2017 w Java przez timati Bywalec (2,060 p.)
Cześć, mam do was pytanie. Mam dynamiczną tablicę w której użytkownik sam wpisuje rozmiar i następnie wpisuje wszystkie liczby do tablicy. Teraz chciałbym zrobić tak, żeby użytkownik mógł podać które liczby chce wypisać. I nie wiem jak się za to zabrać, mam pętlę ale działa źle bo wypisuje mi tablicę od 0 i moge w niej wpisać tylko jedna liczbę a chciałbym żeby dało się w pisać np: 2, 5, 8 i wtedy wypisze 2 , 5 i 8 liczbę w tablicy.

Z góry dzięki za pomoc
1
komentarz 23 maja 2017 przez mitelak Pasjonat (23,330 p.)
Co znaczy "wypisze" dla Ciebie, czy to znaczy wydrukuje je w konsoli, czy usunie z tablicy? Bo jeżeli ma wydrukować to jest to kompletnie bezsensu, bo jeżeli ktoś zna te liczy i je nawet podaje to po co ma to samo co podał wydrukować, ale z tablicy? Równie dobrze można wydrukować to co wpisał. Jeżeli masz na myśli usunięcie to pobieraj te liczby jako string, następnie podziel splitem i każdą zamień na inta i masz już podane liczby w tablicy teraz wystarczy, że dla każdej liczby przelecisz sobie pętlą po tablicy z liczbami i przesuniesz w lewo wszystko za wybraną liczbą, czyli jeżeli masz podane [4,5,2,1,9] i chcesz usunąć 5 to po usunięciu tablica będzie wyglądać tak [4,2,1,9,x] gdzie x to miejsce bez liczby (można też rozwiązać to inaczej i na przykład jeżeli wiesz, że nie będą wprowadzane ujemne liczby to zamiast usunięcia zamienić wartość na -1 [4,-1,2,1,9] i wtedy wiesz, że żeby wstawić na puste miejsce to musisz wstawić zamiast -1).

3 odpowiedzi

0 głosów
odpowiedź 23 maja 2017 przez Antero00 Gaduła (3,670 p.)
Zrób pętle, w której będziesz wczytywał wartość liczby, a następnie sprawdź czy taka liczba znajduje się w tablicy jeśli tak to ją wypisz.

Pokaż kod pętli.
komentarz 23 maja 2017 przez timati Bywalec (2,060 p.)

Aktualnie to jest mój cały kod:

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sr = new Scanner(System.in);
        System.out.println("Ile liczb wprowadzisz ? ");
        int liczbaPomiarow = sr.nextInt();
        double[] tablicaPomiarow = new double[liczbaPomiarow];

        for(int i = 0; i < tablicaPomiarow.length; i++){
            System.out.println("Wprowadz " + i + " wartosc : ");
            tablicaPomiarow[i] = sr.nextDouble();
        }

        //sortowanie
        System.out.println("Przed: " + Arrays.toString(tablicaPomiarow));
        int mini;
        double tmp;
        for (int i = 0; i < tablicaPomiarow.length; i++) {
            mini = i;
            for (int j = i; j < tablicaPomiarow.length; j++) {
                if (tablicaPomiarow[j] < tablicaPomiarow[mini]) {
                    mini = j;
                }
            }
            tmp = tablicaPomiarow[i];
            tablicaPomiarow[i] = tablicaPomiarow[mini];
            tablicaPomiarow[mini] = tmp;
        }

        System.out.println("Po   : " + Arrays.toString(tablicaPomiarow));

        //int indeks = 0;
        int ile;
        System.out.println("Ktore liczby chcesz wypisać : ");
        ile = sr.nextInt();

        for(int indeks = 0; indeks < ile ; indeks++){
            System.out.println(tablicaPomiarow[indeks]);
            indeks++;
        }
//        if(indeks < ile)
//        do{
//            System.out.println(tablicaPomiarow[indeks]);
//            indeks++;
//        }while (indeks < ile);



        double max = -1;
        for(double pomiar : tablicaPomiarow){
            if(pomiar > max){
                max = pomiar;
            }
        }
        System.out.println("Wartość mkasymalna wynosi : " + max);

        double suma = 0;
        for (double pomiar : tablicaPomiarow){
            suma = suma + pomiar;
        }
        System.out.println("Suma wszystkich pomiarów : " + suma);

        double srednia = 0;
        System.out.println("Srednia pomiarow : " + suma/tablicaPomiarow.length);
    }
}

 

komentarz 23 maja 2017 przez Antero00 Gaduła (3,670 p.)

Do zmiennej 

ile

wprowadź wartość ile liczb chcesz wypisać. Następnie pętla for wykonująca się "ile" razy, w której będziesz wczytywał jakie liczby z tablicy chcesz wypisać.

Pętla for each porówna wprowadzoną liczbe z tablica i ewentualnie wypisze ją.

Do sortowania możesz użyć gotowej metody sort

Arrays.sort(tablica);

  

0 głosów
odpowiedź 23 maja 2017 przez timati Bywalec (2,060 p.)

Aktualnie to jest mój cały kod : 

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sr = new Scanner(System.in);
        System.out.println("Ile liczb wprowadzisz ? ");
        int liczbaPomiarow = sr.nextInt();
        double[] tablicaPomiarow = new double[liczbaPomiarow];

        for(int i = 0; i < tablicaPomiarow.length; i++){
            System.out.println("Wprowadz " + i + " wartosc : ");
            tablicaPomiarow[i] = sr.nextDouble();
        }

        //sortowanie
        System.out.println("Przed: " + Arrays.toString(tablicaPomiarow));
        int mini;
        double tmp;
        for (int i = 0; i < tablicaPomiarow.length; i++) {
            mini = i;
            for (int j = i; j < tablicaPomiarow.length; j++) {
                if (tablicaPomiarow[j] < tablicaPomiarow[mini]) {
                    mini = j;
                }
            }
            tmp = tablicaPomiarow[i];
            tablicaPomiarow[i] = tablicaPomiarow[mini];
            tablicaPomiarow[mini] = tmp;
        }

        System.out.println("Po   : " + Arrays.toString(tablicaPomiarow));

        //int indeks = 0;
        int ile;
        System.out.println("Ktore liczby chcesz wypisać : ");
        ile = sr.nextInt();

        for(int indeks = 0; indeks < ile ; indeks++){
            System.out.println(tablicaPomiarow[indeks]);
            indeks++;
        }
//        if(indeks < ile)
//        do{
//            System.out.println(tablicaPomiarow[indeks]);
//            indeks++;
//        }while (indeks < ile);



        double max = -1;
        for(double pomiar : tablicaPomiarow){
            if(pomiar > max){
                max = pomiar;
            }
        }
        System.out.println("Wartość mkasymalna wynosi : " + max);

        double suma = 0;
        for (double pomiar : tablicaPomiarow){
            suma = suma + pomiar;
        }
        System.out.println("Suma wszystkich pomiarów : " + suma);

        double srednia = 0;
        System.out.println("Srednia pomiarow : " + suma/tablicaPomiarow.length);
    }
}

 

0 głosów
odpowiedź 23 maja 2017 przez Wiciorny Ekspert (269,770 p.)
Ja bym to zrobił tak: rozumiem, żę użytkownik: ma sobie wybrać "które liczby chce wypisac" zależy czy widzi te liczby, czy chodzi o pozycje w tablicy: Wtedy wczytywał bym "DO ZMIENNYCH" -> pozycje tutaj tych liczb, i  dodawał je do jakiejś tablicy.

Potem dla tablicy z liczbami- wypisywałbym, elementy o indeksie równym wybranym przez użytkownika  ( który to indeks zapisany został w 2 pomocniczej tablicy).

Jeśli jednak mielibyśmy tu wybrać konkretne liczby, to trzeba by sprawdzać na jakim indeksie się znajdują np przez każe wprowadzenie

Podobne pytania

0 głosów
0 odpowiedzi 323 wizyt
0 głosów
0 odpowiedzi 75 wizyt

92,568 zapytań

141,420 odpowiedzi

319,618 komentarzy

61,954 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!

...