Vai al contenuto





Archived

Questa discussione è archiviata e chiusa a future risposte.

PC2054V

[C] devo trovare il massimo tra gli elementi di un array e la sua posizione

Recommended Posts

ho spiegato tutto nel titolo


 Apple 

 MacBook 5,1 2.4 ghz HD 500 GB  Time Capsule 500 GB  Magic Mouse  iPhone 3G 4.0 beta 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti


beh... così su due piedi, ti direi una roba decisamente poco elegante:

dichiara una variabile numerica e dalle il valore minimo che può assumere (tipo -255) e poi la confronti con ogni elemento dell'array, se l'elemento è più grande assegni alla tua variabile il suo valore e ti salvi (in un'altra variabile) il suo indice, così sai in che posizione è. Quando hai scorso tutto l'array avrai il valore massimo nella tua variabile e la sua posizione nell'array (ricorda che l'indicizzazione parte da 0)

sicuramente ci sono modi più eleganti... ma ora non mi viene in mente nulla...


Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

più o meno ho capito il ragionamento ora provo

grazie:)


 Apple 

 MacBook 5,1 2.4 ghz HD 500 GB  Time Capsule 500 GB  Magic Mouse  iPhone 3G 4.0 beta 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
beh... così su due piedi, ti direi una roba decisamente poco elegante:

dichiara una variabile numerica e dalle il valore minimo che può assumere (tipo -255) e poi la confronti con ogni elemento dell'array, se l'elemento è più grande assegni alla tua variabile il suo valore e ti salvi (in un'altra variabile) il suo indice, così sai in che posizione è. Quando hai scorso tutto l'array avrai il valore massimo nella tua variabile e la sua posizione nell'array (ricorda che l'indicizzazione parte da 0)

sicuramente ci sono modi più eleganti... ma ora non mi viene in mente nulla...

max=v[0];
indice=1;
for(i=1;i<SIZE;i++)
     if(v[i]>max){
                max=v[i];
                indice=i+1;
      }

direi questo... piu' che altro perche' il tuo metodo di prima non considerava se avevi numeri estremamente piccoli :ghghgh:


MacBook Pro 13''

iPhone 3G 4.0.2 (8A400)

Il mio Twitter

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

si, in questo caso è meglio come dici tu, ma non è vero che non si considerano numeri molto piccoli, se la variabile "MAX" è istanziata al numero minimo che può assumere (ovvio, deve essere dello stesso tipo dell'array) considera ogni numero. Ci sono implementazioni (che ora non ricordo, dovrei andare a prendere gli appunti di programmazione XD) in cui non è conveniente assegnare il valore al primo elemento dell'array... non credo sia questo il caso, quindi: la tua soluzione è più pulita.

:-)


Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ho risolto così:

for (i=0; i<num;i++) {

if (max<array) {

max=array;

posizione=i+1;

}

}

printf("il massimo é %d ed è il %d°\n",max,posizione);


 Apple 

 MacBook 5,1 2.4 ghz HD 500 GB  Time Capsule 500 GB  Magic Mouse  iPhone 3G 4.0 beta 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

si, ricorda di istanziare bene la variabile max prima del for


Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

era solo una parte del codice :loveitaliamac:


 Apple 

 MacBook 5,1 2.4 ghz HD 500 GB  Time Capsule 500 GB  Magic Mouse  iPhone 3G 4.0 beta 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

×
×
  • Crea Nuovo...

Info

Per offrirti il miglior servizio possibile il sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego. Privacy Policy Termini di utilizzo