• 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

Object Storage Arubacloud
0 głosów
2,051 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,280 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,280 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,280 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ź 104 wizyt
pytanie zadane 4 maja 2020 w Java przez Schulz0123 Początkujący (330 p.)
0 głosów
2 odpowiedzi 315 wizyt
0 głosów
1 odpowiedź 765 wizyt
pytanie zadane 21 lutego 2019 w Java przez Metarinda Użytkownik (740 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

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

...