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

wypełnianie tablicy danymi podawanymi przez użytkownika

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
2,297 wizyt
pytanie zadane 9 stycznia 2018 w Java przez Ring Początkujący (330 p.)
edycja 9 stycznia 2018 przez HaKIM

Jak w temacie, czyli co ja robię źle? Oczywiście na końcu chcę wyświetlić te liczby

import java.util.Scanner;

public class foreach {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] numbers = new int[3];
		Scanner sc = new Scanner(System.in);
		for(int tmp: numbers){
		System.out.println("Podaj liczbę");
		tmp = sc.nextInt();
		for(int tmp1=0; tmp1<numbers.length; tmp1++)
			numbers[tmp1]=tmp;
		}
		for(int tmp: numbers) {
		System.out.println(tmp);
		}
		sc.close();
	}
	}

 

1 odpowiedź

0 głosów
odpowiedź 9 stycznia 2018 przez Aleksander Januszews Gaduła (3,790 p.)

Rozumiem, że pytasz dlaczego wyświetlają ci się trzy liczby ostatnio podanej liczby przez użytkownika.

 

Ta pętla wpisuje aktualną wartość do wszystkich komórek tablicy

...
tmp = sc.nextInt();
for(int tmp1=0; tmp1<numbers.length; tmp1++)
            numbers[tmp1]=tmp;
        }
...

Dlatego jak podajesz np. 5,4,3 to jako odpowiedź dostajesz: 3,3,3

komentarz 9 stycznia 2018 przez Ring Początkujący (330 p.)

akurat to wiem, natomiast nie wiem jak zrobić, żeby wpisywało kolejne liczby podane przez użytkownika. Myślałam jeszcze o czymś takim, ale to też nie działa:/

for(int tmp: numbers){
		System.out.println("Podaj liczbę");
		numbers[tmp] = sc.nextInt();
		}

 

komentarz 9 stycznia 2018 przez mbabane Szeryf (79,260 p.)
Zastanów się, które operacje musisz wykonać (będą się zawsze powtarzać) i wstaw je do pętli.
komentarz 9 stycznia 2018 przez Ring Początkujący (330 p.)
chyba nie do końca to widzę. Chcę, żeby powtarzało się przypisywanie wartości do tablicy. I w moim drugim rozwiązaniu (wg mnie) tak jest. Podane przez użytkownika liczby są przypisane od razu do tablicy, a wszystko znajduje się w pętli. Więc dlaczego to nie działa?
komentarz 9 stycznia 2018 przez Aleksander Januszews Gaduła (3,790 p.)
...
int i = 0 ;
for(int tmp: numbers)
{
	System.out.println("Podaj liczbę");
        tmp = sc.nextInt();
        numbers[i]=tmp;
	i++;
}
...

Sprawdź moje proponowane rozwiązanie i porównaj ze swoim

 

komentarz 9 stycznia 2018 przez mbabane Szeryf (79,260 p.)
edycja 9 stycznia 2018 przez mbabane

Ty chcesz powtarzać: przypisywanie i pobieranie od użytkownika, a to jest różnica:

1 Pobranie od użytkownika
2 Przypisanie do komórki w tablicy
3 Pobranie
4 Przypisanie

(Raz pobierz, raz przypisz...)

Wydaje mi się, że musisz sobie przypomnieć jak używa się tablic, bo tutaj utknąłeś.

Co do kodu Aleksandra to nie jest on najlepszy (pomimo, że działa), dlatego, że najpierw przypisywane są do zmiennej tmp, kolejne wartości z tablicy numbers, a potem to tmp nadpisywane jest przez użytkownika, by potem przypisać tmp do tego samego miejsca w tablicy. Wiec lepiej to będzie zrobić najprościej jak się da:

for (int i = 0; i < numbers.length; i++)
{
     System.out.println("Podaj liczbę:");
     int tmp = sc.nextInt();
     numbers[i] = tmp;
}

 

komentarz 9 stycznia 2018 przez Ring Początkujący (330 p.)
Dzięki za wszystkie odpowiedzi, szczególnie mbabane - dużo mi rozjaśniłeś :) Właśnie próbuję okiełznać tablice, ale jeszcze się w nich trochę gubię - co zresztą widać ;)
komentarz 9 stycznia 2018 przez mbabane Szeryf (79,260 p.)
Moze to Ci pmoze:
https://www.youtube.com/watch?v=Rt1HnMdzINo&index=6&list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo

Nie przejmuj się, że tam jest Cpp, w Javie tablice działają z grubsza tak samo.

(Jak coś to tam możesz nie wiedzieć co to jest "cout<<" to jest to samo co System.out.println(), a "cin>>" to pobranie od uzytkownika)

Podobne pytania

0 głosów
1 odpowiedź 118 wizyt
pytanie zadane 4 maja 2020 w Java przez Schulz0123 Początkujący (330 p.)
0 głosów
2 odpowiedzi 362 wizyt
0 głosów
1 odpowiedź 811 wizyt
pytanie zadane 21 lutego 2019 w Java przez Metarinda Użytkownik (740 p.)

93,108 zapytań

142,085 odpowiedzi

321,607 komentarzy

62,449 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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...