Wstawianie elementu w środek Tablicy

Wstawianie elementu w środek Tablicy
G2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Mam problem z następującym zadaniem:

Utwórz 20 elementową tablicę zmiennych typu int i wypełnij elementy od
indeksu 0 do 18 losowymi wartościami. Następnie w środek tablicy wstaw element o
wartosci -1 i wyświetl cała tablice.

Udało mi się wyświetlić tablice przed i po wstawieniu, lecz z samym wstawieniem mam problem. W moim kodzie wstawiana liczba zastępuje inną a chodzi o to żeby tablicę rozszerzyć o tą żądaną wartość tzw. "rozstrzelenie tablicy".

Kopiuj
public class ppj5
{
	public static void main (String[]args)
	{
              int[] tabT = new int[20];
			
			for(int i=0; i<tabT.length; i++)
				tabT[i] = (int)(Math.random()*100);		
				tabT[19]=-6000;
				
			for(int i=0; i<tabT.length; i++)
				System.out.print(tabT[i] + " ");
			System.out.println();
			
			int[] tmpT = new int[21];
			for(int i=0; i<tabT.length; i++)
				tmpT[i] = tabT[i];
			tabT = tmpT;
			
			for(int i=0; i<tabT.length; i++){
				System.out.print(tabT[i] + " ");
				tmpT[10]=-1;}
			System.out.println();
    }
}

Bardzo proszę o jakieś wskazówki jak rozstrzelić tablicę

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
2

Jeśli musisz wstawić w miejscu i, to idąc od tyłu kopiuj element 18 na miejsce 19, 17 na miejsce 18 itd.. aż do element i na miejsce i+1. Potem wstaw w miejsce i nowy element.

Edit: czasem lepiej jednak wyjaśnić kodem niż słowami :D

Kopiuj
void insertAt(int[] tab, int index) {
    for (int i = 19; i > index; --i)
        tab[i] = tab[i-1];
    tab[index] = -1;
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
for(int i=0;i<tabT.length;++i) tmpT[i+(i>=10?1:0)]=tabT[i];
tabT=tmpT;
tabT[10]=-1;
for(int i=0;i<tabT.length;++i)  System.out.print(tabT[i] + " ");

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.