PC2054V Inviato 5 Gennaio 2010 Segnala Condividi Inviato 5 Gennaio 2010 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 Link al commento Condividi su altri siti Altre opzioni di condivisione...
kralizec Inviato 5 Gennaio 2010 Segnala Condividi Inviato 5 Gennaio 2010 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 Altre opzioni di condivisione...
PC2054V Inviato 5 Gennaio 2010 Autore Segnala Condividi Inviato 5 Gennaio 2010 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 Altre opzioni di condivisione...
iTia Inviato 5 Gennaio 2010 Segnala Condividi Inviato 5 Gennaio 2010 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 MacBook Pro 13'' iPhone 3G 4.0.2 (8A400) Il mio Twitter Link al commento Condividi su altri siti Altre opzioni di condivisione...
kralizec Inviato 6 Gennaio 2010 Segnala Condividi Inviato 6 Gennaio 2010 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 Altre opzioni di condivisione...
PC2054V Inviato 6 Gennaio 2010 Autore Segnala Condividi Inviato 6 Gennaio 2010 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 Altre opzioni di condivisione...
kralizec Inviato 6 Gennaio 2010 Segnala Condividi Inviato 6 Gennaio 2010 si, ricorda di istanziare bene la variabile max prima del for Link al commento Condividi su altri siti Altre opzioni di condivisione...
PC2054V Inviato 7 Gennaio 2010 Autore Segnala Condividi Inviato 7 Gennaio 2010 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 Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.