Il programma deve creare, dato un array di numeri, un array con la sequenza dei numeri invertita.
Es.
1 2 3 4
4 3 2 1
codice:
import java.util.Scanner;
public class InversoNArray {
public static void main (String [] args) {
Scanner tastiera = new Scanner(System.in);
System.out.println("Quanti numeri vuoi inserire?");
int d = tastiera.nextInt();
System.out.println("Inserisci una sequenza di numeri:");
int numero = 0;
int indice = 0;
int [] numeriArray = new int [d];
int tmpArray [] = new int [d];
for (int i=0; i<numeriArray.length; i++) {
numero = tastiera.nextInt();
InserisciNumeri(numero, numeriArray, indice);
indice++;
}
InvertiArray(numeriArray, d, tmpArray);
for (int k=0; k<numeriArray.length; k++)
System.out.print(tmpArray[k]+ " ");
}
public static int [] InserisciNumeri (int numero, int [] numeriArray, int indice) {
numeriArray[indice] = numero;
return numeriArray;
}
public static int [] InvertiArray (int [] numeriArray, int d, int [] tmpArray) {
//int tmpArray [] = new int [d];
int k = numeriArray.length-1;
for (int i=0; i< numeriArray.length; i++) {
tmpArray[k] = numeriArray[i];
k--;
}
//numeriArray = tmpArray;
//return numeriArray;
return tmpArray;
}
}
allora, in questa versione del programma tutto funziona. Passo al metodo 2 array (uno vuoto e uno contenente i numeri) ecc. Nella versione (iniziale) avevo creato il secondo array (quello tmp) dentro il metodo, e poi avevo cambiato il riferimento dell'array principale, passando così quello al main. (sono le righe di codice contrassegnate come commenti).
Ma una volta eseguito mi stampa l'identica sequenza, non inversa.
Dove sbaglio?!?