E questo è il codice del secondo esercizio:
codice:
import java.io.*;
import java.util.*;
public class PosMaxInt {
public static int posMax(int [] array, int quanti) {
int [] tmpMax = new int[2];
tmpMax[0] = array[0];
tmpMax[1] = 0;
for (int t=0; t<quanti; t++) {
if (array[t] > tmpMax[0]) {
tmpMax[0] = array[t];
tmpMax[1] = t;
}
}
return tmpMax[1];
}
public static void main(String [] args) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String valore;
int val;
int [] numeri;
System.out.print("Quanti valori leggere: ");
System.out.flush();
try {
valore = br.readLine();
val = Integer.parseInt(valore);
numeri = new int[val];
for (int i=0; i<val; i++) {
System.out.print("Introdurre il "+(i+1)+"° valore: ");
System.out.flush();
valore = br.readLine();
numeri[i] = Integer.parseInt(valore);
}
System.out.println("La posizione del valore massimo è: "+posMax(numeri, val));
} catch (NumberFormatException nfe) {
nfe.printStackTrace();
} catch (IOException ioe) { ioe.printStackTrace(); }
}
}
Il programma ti restituisce la posizione secondo la lociga dell'array: 0 per la prima, 1 per la seconda, 2 per la terza...
Se vuoi la posizione a partire da 1 basta che modifichi la seguente linea:
codice:
System.out.println("La posizione del valore massimo è: "+posMax(numeri, val));
In questo modo:
codice:
System.out.println("La posizione del valore massimo è: "+posMax(numeri, val)+1);
Ciao.