/** Classe della Prova di Esame di Programmazione I e Laboratorio del 7 aprile 2003 */ public class ProvaArrayAprile { /** deve prendere come parametro un array di elementi di tipo intero e lo modifica scambiando di posizione l'elemento di valore piu' grande con l'elemento di valore piu' piccolo presente nell'array @param a primo array di elementi di tipo intero @return void */ public static void scambiaMinMax(int[] a) { if ((a == null) || (a.length == 0)) return; int posMin = 0; int posMax = 0; int i = 0; while (i < a.length) { // e` possibile usare anche il "for" in alternativa if (a[i] > a[posMax]) posMax = i; if (a[i] < a[posMin]) posMin = i; i++; } int temp = a[posMax]; a[posMax] = a[posMin]; a[posMin] = temp; } /** Stampa un array di interi. Se l'array e` null lo segnala. @param a l'array di interi */ public static void printArray(int[] a) { if (a == null) System.out.println("L'array e` uguale a null!"); else if (a.length == 0) System.out.println("[]"); else for (int i = 0; i < a.length; i++) System.out.println("Elemento " + i + ": " + a[i]); } /** Risultato atteso dal main: Elemento 0: 2 Elemento 1: 1 Elemento 2: 6 Elemento 3: 3 Elemento 4: 7 Elemento 5: 4 Elemento 0: 2 Elemento 1: 7 Elemento 2: 6 Elemento 3: 3 Elemento 4: 1 Elemento 5: 4 [] L'array e` uguale a null! */ public static void main(String[] args) { int[] a = {2, 1, 6, 3, 7, 4}; printArray(a); scambiaMinMax(a); printArray(a); scambiaMinMax(a = new int[] {}); printArray(a); scambiaMinMax(a = null); printArray(a); } }