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. } } }

Rispondi quotando