Witam,
Tablica ma 12 elementów typu int.
Nie wiem jak wyrównać elementy tablicy do prawej strony, tak by wyglądało to tak:
Przed Wyrównaniem :
[-2,-1,0,0,0,0,0,0,0,0,0,0]
Po wyrónaniu :
[0,0,0,0,0,0,0,0,0,0,-2,-1]
Proszę o pomoc
Witam,
Tablica ma 12 elementów typu int.
Nie wiem jak wyrównać elementy tablicy do prawej strony, tak by wyglądało to tak:
Przed Wyrównaniem :
[-2,-1,0,0,0,0,0,0,0,0,0,0]
Po wyrónaniu :
[0,0,0,0,0,0,0,0,0,0,-2,-1]
Proszę o pomoc
Wyrównanie to przesunięcie niezerowych elementów na koniec, z zachowaniem ich kolejności?
Możesz skorzystać z czegoś takiego:
public class ArrayUtils {
public static int[] swapTab(int[] tab) {
int[] tabAfterSwap = new int[tab.length];
for (int i = 0; i < tab.length; i++) {
tabAfterSwap[i] = tab[tab.length - 1 - i];
}
return tabAfterSwap;
}
}
lub gdy nie chcemy tworzyć nowej tablicy:
public static int[] reverseArray(int[] array) {
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
return array;
}
Ps. Racja wyrównanie to raczej złe słowo, lepsze byłoby raczej odwórcenie kolejności elementów tablicy tak, aby pierwszy element był ostatnim, drugi przedostatnim etc
AAaa.. ok nie zauważyłem, że chodzi o co innego. Myślałem, że o odwrócenie kolejności elementów tablicy. Mój kod służy właśnie do tego.
int ilecyfr=0;
for(int i=0;i<tab.length;i++)
if(tab[i]!=0) ilecyfr++;
for(int x=0;x<ilecyfr;x++){
for(int i=0;i<tab.length-1;i++){
if(tab[i]!=0 && tab[i+1]==0){
temp = tab[i];
tab[i] = tab[i+1];
tab[i+1] = temp;
}
}
}