Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Vettori - Maggiore di n. numeri
Forum - C/C++ - Vettori - Maggiore di n. numeri

Avatar
Mark (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/01/2007

Segnala al moderatore
Postato alle 15:20
Sabato, 13/01/2007
Salve a tutti, sono un nuovo arrrivo del forum...

Avrei un piccolo problema. Il mio professoremi ha chiesto di scrivere un programma che letti un array di n. numeri ne stampi il maggiore.

Come indizio, mi ha detto di utilizzare un ciclo "for", e di mettere al suo interno le istruzione per avere l'outpu desiderato.

Non ci riesco. Qualcuno può aiutarmi?? Grazie in anticipo..

PM Quote
Avatar
Black Shadow (Founder Member)
Expert


Messaggi: 323
Iscritto: 30/03/2006

Segnala al moderatore
Postato alle 15:33
Sabato, 13/01/2007
Mi sembra strano dato che è una cosa semplicissima.

Cmq si può fare così:

Codice sorgente - presumibilmente C++

  1. //L'array con i valori
  2. int vector[10] = {/*..valori..*/};
  3.  
  4. //La variabile che conterrà il numero più alto
  5. int greater = 0;
  6.  
  7. //Un ciclo for per trovare il più valore più alto
  8. for (int a = 0 ; a < 10 ; a++) {
  9.    if (vector[a] > greater) greater = vector[a];
  10. }
  11.  
  12. /*Stampa greater, cioè il valore più alto trovato nell'array*/
  13. cout << greater;



Cmq ti consiglio di provare e riprovare prima di chiedere aiuto, soprattutto quando si tratta di esercizi.;)

Ultima modifica effettuata da Black Shadow il 13/01/2007 alle 15:34
PM Quote
Avatar
Mark (Normal User)
Newbie


Messaggi: 6
Iscritto: 13/01/2007

Segnala al moderatore
Postato alle 15:38
Sabato, 13/01/2007
Grazie per avermi aiutato. :k:

Afferro al volo il consiglio che mi hai dato e, per evitare di copiare senza capire niente, cercherò di capire il codice...

Molte grazie...:)

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 3:03
Domenica, 14/01/2007
Testo quotato

Postato originariamente da Black Shadow:
Cmq si può fare così:

Codice sorgente - presumibilmente C++

  1. //L'array con i valori
  2. int vector[10] = {/*..valori..*/};
  3.  
  4. //La variabile che conterrà il numero più alto
  5. [b]int greater = 0;[/b]
  6.  
  7. //Un ciclo for per trovare il più valore più alto
  8. for (int a = 0 ; a < 10 ; a++) {
  9.    if (vector[a] > greater) greater = vector[a];
  10. }
  11.  
  12. /*Stampa greater, cioè il valore più alto trovato nell'array*/
  13. cout << greater;





Il codice presenta un'imperfezione notevole, in quanto il testo non specifica che l'input è per forza > 0, quindi se l'array contenesse solamente elementi negativi il programma darebbe un risultato errato.

E visto che Windows trasforma tutti gli int in long int, per rendere il codice portabile dobbiamo anche modificare il tipo di dato da int a long int:

Codice sorgente - presumibilmente C++

  1. //L'array con i valori
  2. long int vector[10] = {/*..valori..*/};
  3.  
  4. //La variabile che conterrà il numero più alto
  5. long int greater = -0x7FFFFFFF;
  6.  
  7. //Un ciclo for per trovare il più valore più alto
  8. for (int a = 0 ; a < 10 ; a++) {
  9.    if (vector[a] > greater) greater = vector[a];
  10. }
  11.  
  12. /*Stampa greater, cioè il valore più alto trovato nell'array*/
  13. cout << greater;


Ultima modifica effettuata da pierotofy il 14/01/2007 alle 3:04


Il mio blog: https://piero.dev
PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 12:05
Domenica, 14/01/2007
penso che sia meglio una soluzione del genere
Codice sorgente - presumibilmente C/C++

  1. int vett[10];
  2.  
  3. Leggi();//...
  4.  
  5. int max=vett[0];
  6.  
  7. for(int i=1;i<10;i++)
  8.  if(max<vett[i])
  9.    max=vett[i];
  10.  
  11. stampa_magg();//...



Cosi non abbiamo sorprese...

PM Quote