Java problem z dynamiczna tablica

0

kod prawie działa ale mam problem z przypisaniem do zmiennej wartości z ArrayListy, (suma = liczby.get(i);)
macie jakieś wskazówki jak to zrobić?

treść zadania
4. Napisać program, który pobiera od użytkownika ciąg liczb całkowitych. Pobieranie
danych kończone jest podaniem wartości 0 (nie wliczana do danych). W następnej kolejności program powinien wyświetlić sumę największej oraz najmniejszej z
podanych liczb oraz ich średnią arytmetyczną.

import java.util.Scanner;
import java.util.ArrayList;
public class Ćwiczenie2_4 {

    public static void main(String[] args) {

     
          int liczba;
        ArrayList liczby = new ArrayList();
        Scanner odczyt = new Scanner(System.in);
        do{
                         System.out.print("Podaj liczby, liczba 0 konczy liczenie");
            liczba = odczyt.nextInt();

                        liczby.add(liczba);


        }

     
       while(liczba!=0);
        int suma=0;

        for(int i=0;i<liczby.size();i++)  {
            suma = liczby.get(i);
        }
        System.out.print(suma);
       
    }
}
0
  1. Używaj javy > 1.4 jak normalny człowiek -> ArrayList<Integer> i for(Integer liczba : liczby)
  2. Dodajesz 0 do tablicy a nie miałeś tego nie robić
  3. Poza tym nijak nie stosujesz sie do polecenia bo wcale nie liczysz tej sumy ani średniej...
0

teraz próbuje tylko zsumować wszystkie elementy w jednej zmiennej i coś nie działa .

0

zmieniłem
for(int i=0;i<liczby.size()-1;i++

i juz nie wyświetla zera

0

init0, nie znam innego sposoby więc zrobiłem tak jak potrafie

0

widocznie moja wiedza jest niewystarczająca wiec może ktoś z wiedzą na ten temat dopomoże?

0

Podpowiem mu trochę więcej:

  1. wystarczy Ci pętla while
  2. w warunku pętli można przypisac do zmiennej i sprawdzic tę zmienną
0
        int suma=0;
 
        for(int i=0;i<liczby.size();i++)  {
            suma = liczby.get(i);
        }
        System.out.print(suma);

Twoim zdaniem co robi ten fragment kodu? Moim zdaniem wyświetla on ostatnią wprowadzoną liczbę, więc nie robi tego o co chodzi w zadaniu. Powinieneś utworzyć jakieś zmienne, które przechowają największą i najmniejszą podaną liczbę i potem ich sumę przypisać do zmiennej suma. Wtedy otrzymasz sumę tych liczb. Średnią arytmetyczną to wiadomo, dzielisz otrzymaną sumę na 2. Jakbyś nie wiedział jak zwrócić najmniejszy i największy element z listy, to spójrz tutaj: http://www.tutorialspoint.com/java/util/collections_max_comparator.htm

0
Swr napisał(a):

Podpowiem mu trochę więcej:

  1. wystarczy Ci pętla while
  2. w warunku pętli można przypisac do zmiennej i sprawdzic tę zmienną

Dzięki twojej podpowiedzi od razu wpadłam na rozwiązanie..i nie rozumiem podejścia innych odpowiadających. Wydawać by się mogło,że forum służy do tego, żeby bardziej doświadczeni mogli pomagać mniej doświadczonym w programowaniu a nie do tego, żeby obrażać ich na każdym kroku, stosując jakieś pseudointeligenckie porównania. Człowiek naprawdę inteligentny nie musi tego co chwile udowadniać,że taki jest.
To tyle, dziękuję za podpowiedź.

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