Vai al contenuto

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


PC2054V

Messaggi raccomandati

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...

Link al commento
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

Link al commento
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

Link al commento
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.

:-)

Link al commento
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

Link al commento
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

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...