Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    152

    [Java] Array: posizione del numero piu grande

    Ciao a tutti,
    ho il seguente esercizio da fare: "Scrivere un metodo int posizioneMassimo(int[] a) che calcola la posizione dell'elemento massimo di a"
    quindi se per esempio il mio array è {3,2,1} il programma mi deve restituire il valore 0.
    Non riesco a dare alla variabile "posmax" l'indice che del valore massimo. Fin ora sono arrivato a questo punto:

    codice:
    class ArrayMAXposizione{
    	public static int posizioneMassimo(int[] a){
    		int i;                   //indice dell'array
    		int max;                   //valore massimo dell'array
    		int posmax;                 //indice del valore massimo
    		posmax=a[0];
    		max= a[0];
    		for(i=0; i<a.length; i++){                
    			if(a[i]>max)
    			max=a[i];
    			posmax=?????????;               /*<------ il mio problema sta su questo punto*/
    		}
    		return posmax;
    	}
    	public static void main (String[] args){
    		System.out.println(ArrayMAXposizione.posizioneMassimo(new int[] {10,5,3,7,7}));
    	}
    }

  2. #2
    codice:
    class ArrayMAXposizione {
    
    	public static int posizioneMassimo(int[] a) {
    		int posMax = 0;
    		int max = a[0];
    		for(int i = 0; i < a.length; i++) {                
    			if (a[i] > max) {
    				max = a[i];
    				posmax = i;
    		}
    		return posmax;
    	}
    
    	public static void main (String[] args) {
    		System.out.println(ArrayMAXposizione.posizioneMassimo(new int[] {10, 5, 3, 7, 7}));
    	}
    }
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    152
    Ho già provato a farlo cosi ma mi restituisce il numero di elementi dentro l'array non la posizione del valore massimo...
    L'applicazione dovrebbe stamparmi come risultato "0" perchè 10 è nella posizione "0" cosi mi restituisce 4 cioè il numero degli elementi (4 e nn 5 xk ho fatto che i=0)

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319
    Perchè non hai usato le graffe:
    codice:
    	public static int posizioneMassimo(int[] a){
    		int i;                   //indice dell'array
    		int max;                   //valore massimo dell'array
    		int posmax;                 //indice del valore massimo
    		posmax=a[0];
    		max= a[0];
    		for(i=0; i<a.length; i++){                
    			if(a[i]>max) {  <-- GRAFFA APERTA   
    			   max=a[i];
    			   posmax=i;
    			}   <-- GRAFFA CHIUSA
    		}
    		return posmax;
    	}
    	public static void main (String[] args){
    		System.out.println(ArrayMAXposizione.posizioneMassimo(new int[] {10,5,3,7,7}));
    	}
    }
    Senza l'uso delle parentesi, il corpo dell'istruzione if è rappresentato da una sola riga (l'assegnazione alla variabile "max").


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    152
    Grandissimo!!!!!
    grazie mille!!!!!

  6. #6
    Mea culpa ho saltato la graffa anche io, ho modificato il codice di getto e dire che l'ho anche indentato bene.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.