4 svar
361 visningar
Teknikare 17 – Fd. Medlem
Postad: 1 okt 2020 13:45

Omvänd array

Hej! Har en uppgift som jag fastnat med.

"Skriv nu ut arrayen i omvänd ordning (swap-teknik)."

 

Min kod ser ut såhär, hur ska jag göra för att få talen i omvänd ordning?:

int[] hyllor = new int[10];
int random = (int)((Math.random()*999)+100);

hyllor[0] = random;
hyllor[1] = (int)((Math.random()*999)+100);
hyllor[2] = (int)((Math.random()*999)+100);
hyllor[3] = (int)((Math.random()*999)+100);
hyllor[4] = (int)((Math.random()*999)+100);
hyllor[5] = (int)((Math.random()*999)+100);
hyllor[6] = (int)((Math.random()*999)+100);
hyllor[7] = (int)((Math.random()*999)+100);
hyllor[8] = (int)((Math.random()*999)+100);
hyllor[9] = (int)((Math.random()*999)+100);

System.out.println("Talen är: " + (Arrays.toString(hyllor)));


Laguna Online 30219
Postad: 1 okt 2020 14:57

Får du använda loopar?

Vad är swap-teknik?

Teknikare 17 – Fd. Medlem
Postad: 20 okt 2020 12:19
Laguna skrev:

Får du använda loopar?

Vad är swap-teknik?

Vår lärare kallade det för swap-teknik, tror vi får använda loopar. Jag är verkligen inte insatt i programmering, behöver all hjälp jag kan få!

Lindehaven 820 – Lärare
Postad: 20 okt 2020 13:15

Att fylla hyllor med tio nästan likadana kodrader är onödigt mycket skrivande. Om du behöver en array med tusen element blir det väldigt mycket skrivande (och läsande!). Det är lämpligare att använda en loop.

Svårt att förstå vad din lärare menar med "swap-teknik". Hen kanske menar den swap-metod som finns i klassen Collections som kan användas för att byta plats på två element i en lista. Kanske menar hen att listan ska sorteras med hjälp av bubble sort eller liknande (bättre) sorteringsalgoritm som byter plats på element i en lista.

Laguna Online 30219
Postad: 20 okt 2020 13:51 Redigerad: 20 okt 2020 13:52

Man kan skriva ut talen i omvänd ordning utan att ändra i arrayen, och eftersom det står så så skulle jag göra det. Man kan också ändra arrayen så att elementen är i omvänd ordning och sedan skriva ut hela arrayen med println och toString. Då kan man t.ex. byta plats på två element i taget, antingen med nån inbyggd metod, som Lindehaven föreslog, eller själv, med hjälp av en temporärvariabel (det kanske är det som menas med swap-teknik). Här byter jag plats på två av dem:

int tmp;
tmp = hyllor[0];
hyllor[0] = hyllor[9];
hyllor[9] = tmp;

Svara
Close