Cześć. Na początku dodam, że zaczynam dopiero swoją przygodę z programowaniem i chciałbym prosić was o pomoc.
Generalnie to utworzyłem tablice która wypełnia się losowymi cyframi. Następnie chce tą tablice uporządkować rosnąco w ten sposób, by element [i] porównywał się z kolejnym elementem tablicy tzn [i+1]. Problem pojawia się przy ostatnim elemencie, ponieważ komputer chce go porównać z kolejnym elementem który nie istnieje przez co ostatni element nie jest wyświetlany po skompilowaniu...(Przynajmniej to moje założenie, jeśli się mylę to również proszę o korektę) Nie chce korzystać z gotowych metod póki co, chce ogarnąć jak to działa bez gotowców. Kod wygląda następująco:
package sorcik;
import java.util.Random;
public class Sorcik {
public static void main(String[] args) {
Random los = new Random();
int temp;
int [] tab = new int [5];
for(int i=0; i<tab.length;i++)
{
tab[i]=los.nextInt(9)+1;
System.out.println(tab[i]);
}
System.out.println();
for(int i=0;i<tab.length;i++)
{
System.out.print(+i+": ");
for(int k=0;k<4;k++)
{
if(tab[k+1]<tab[k])
{
temp=tab[k];
tab[k]=tab[k+1];
tab[k+1]=temp;
temp=0;
}
System.out.print(tab[k]);
}
System.out.println();
}
}
}
Przy kompilowaniu wygląda to następująco:
5
3
7
6
4
0: 3564
1: 3546
2: 3456
3: 3456
4: 3456
Tak jak widać ucina mi cyfre 7. Prosze o pomoc w odnalezieniu błędu.