Salve a tutti. Ho un problemone.
Come faccio ad estrarre da un array i tre valori più alti?
Mi spiego meglio con un esempio:
lunghezza[5] = {3,6,4,8,0};
OUTPUT:
Valore al 1 posto: 8
Valore al 2 posto: 6
Valore al 3 posto: 4
GRAZIEEEE
Salve a tutti. Ho un problemone.
Come faccio ad estrarre da un array i tre valori più alti?
Mi spiego meglio con un esempio:
lunghezza[5] = {3,6,4,8,0};
OUTPUT:
Valore al 1 posto: 8
Valore al 2 posto: 6
Valore al 3 posto: 4
GRAZIEEEE
Ordini l'array in ordine decrescente e prendi le prime tre posizioni...Originariamente inviato da SergiusXP
Salve a tutti. Ho un problemone.
Come faccio ad estrarre da un array i tre valori più alti?
Mi spiego meglio con un esempio:
lunghezza[5] = {3,6,4,8,0};
OUTPUT:
Valore al 1 posto: 8
Valore al 2 posto: 6
Valore al 3 posto: 4
GRAZIEEEE
Di algoritmi di ordinamento ne è piena zeppa la rete internet: una ricerca nel forum o con google e hai risolto il problema.
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
eh ma il problema è che non posso variare la posizione degli elementi..
Quindi non posso ordinare
(a meno che non crei un array-copia e non posso)
Allora, se devi solo estrarre i tre più alti, utilizza 3 variabili d'appoggio.
Scorri l'array una sola volta e ciascun elemento lo confronti con le tre variabili (con opportuni scambi).
1) Se l'elemento I è maggiore di Var1 porti Var2 in Var3, Var1 in Var2 e Var1 diventa l'elemento I
altrimenti
2) Se l'elemento I è maggiore di Var2 porti Var2 in Var3 e Var2 diventa l'elemento I
altrimenti
3) Se l'elemento I è maggiore di Var3 metti I in Var3.
Alla fine della prima passata dell'array hai in Var1 il più grande, Var2 il secondo e Var3 il terzo.
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
Non pensi sia meglio fare vedere il codice che hai scritto?Originariamente inviato da SergiusXP
non funzia![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
Se non puoi cambiare la posizione degli elementi e non vuoi creare una copia del vettore per non appesantire il programma usa un vettore di puntatori !!!Originariamente inviato da SergiusXP
eh ma il problema è che non posso variare la posizione degli elementi..
Quindi non posso ordinare
(a meno che non crei un array-copia e non posso)
Quoto la soluzione con le 3 variabili (posta il codice e vediamo l'errore) in quanto la complessita' e' minore rispetto all'ordinamento ( O(n) contro O(n*logn) ) quindi in pratica il programma sara' un tantino piu' veloce.