Cosi facendo, le lo ordina e basta, e mi stampa il primo a video col tuo primo comando, non me lo stampa ordinato.
Anche richiamando:
System.out.print(ArrayV.ordina(v,v.length));
mi accede alla posizione di memoria dell array, infatti mi restituisce:
[I@8dc8569
con il tuo secondo comando, non stampa l'array ma lo ordina solamente.
L'esercizio completo è:
public class ArrayV {
private int[] nom;
private int dim;
public static void stampa(int nom[]){
String a="";
for(int i=0;i<nom.length;i++)
a+=nom[i];
System.out.print(a);
}
public static int []ordina(int[] nom, int dim){
int tmp;
for(int i=0;i<dim-1;i++){
for(int j=i+1;j<dim;j++)
if(nom[i]>nom[j]){
tmp=nom[j];
nom[j]=nom[i];
nom[i]=tmp;
}
}
return nom;
}
public static void annulla(int nom[]){
for(int i=0;i<nom.length;i++)
if(i%2==0) nom[i]=0;
System.out.println(nom);
}
public static void main(String [] args)throws Exception{
int[] v={8,5,3,7};
//int tmp[]=new int[4];
//ArrayV.stampa(v.ordina);
//annulla(v);
//System.out.print(ordina(v));
//ArrayV.stampa(v); //stampa il contenuto di v senza ordinarlo
System.out.print(ArrayV.ordina(v,v.length));//ordina e stampa il contenuto di v
}
}