Eccoti qua il risultato, il problema e che tu ordinavi l'array contemporaneamente mentre lo creavi, questo comportava parecchi problemi, invece devi prima creare l'array completo poi ordinarlo come faccio io, i valori basta che li limiti per quelli esatti con dei controlli come faccio io, questo è il codice (se poi consideri che valori uguali vanno tolti allora basta aggiungere vari controlli, tipo i valori uguali li trasformi in null e nel for salti cio' che è uguale a null anche):
codice:
public class DueArrayInUnUnico {
public static void main (String[] args){
int a[] = new int [6];
int b[] = new int [4];
int c[] = new int [10];
int i,k,f,t,j;
//creo i valori negli array come fai tu.
for (i = 0; i<6; i++) {
a[i] = (int) (Math.random()*100);
}
for (j = 0; j<4; j++) {
b[j] = (int) (Math.random()*100);
}
/*ora considerando gli array esterni, dico esterni perché nel passaggio dei valori in un'altro array potevo farlo
contemporaneamente quando li creavo, ovviamente non ordinato ancora*/
for (k=0; k<10; k++) {
//ecco la risoluzione, controllo che i valori siano giusti e ordino l'array da un for esterno.
if (k<6)
c[k] = a[k];
else
c[k] = b[k-6];
}
//for finale, ordinamento;
int valcurrent, vs;
for (f = 0; f<10; f++) {
valcurrent = c[f]; //considero il primo valore
for (t = f+1; t<10; t++) { //lo confronto con il resto dei valori
if (c[t]<valcurrent) { //controllo se il valore successivo è minore di quello considerato
vs = c[t]; //se si scambio i valori
c[t] = valcurrent;
valcurrent = vs;
} if (c[t]==valcurrent) continue; //se i valori sono uguali passo al valore successivo
}
}
for (f = 0; f<10; f++) {
System.out.println(c[f]); //stampo tutto a schermo.
}
}
}