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