Aiuto in un programma c++

di il
2 risposte

Aiuto in un programma c++

Ragazzi avrei un problema con questo programma in c++
La traccia è questa: Scrivere un programma C++ che chiede in input N valori interi, con N fissato dall'utente, e calcoli quanto segue:
• Il massimo valore max tra gli N inseriti
• Il minimo valore min tra gli N inseriti
• Quanti valori sono uguali a max
• Quanti valori sono uguali a min
• Quanti valori sono nulli.

Sto all'inizio dei cicli e ho difficoltà. Vorrei sapere solo il procedimento come si deve fare

2 Risposte

  • Re: Aiuto in un programma c++

    Molto semplice:
    1) Per il primo esercizio ti consiglio di utilizzare un ciclo "for" ( libero tu di utilizzare anche gli altri)
    SINTASSI CICLO "FOR":
    
     for(int i = 0; i < n; i++)
     {
       //qui scrivi il codice che deve eseguire
     }
     
    Allora abbiamo la variabile "i" ( è indifferente dove la dichiari o dentro il ciclo o all'inizio del programma) che serve per "contare" quante volte il ciclo è stato eseguito, poi la variabile "n" che invece è la variabile che tu chiedi in input (ovvero il numero di volte che il ciclo si deve eseguire, in parole povere se "n = 3" il ciclo si esegue tre volte), quel "i < n" significa che il ciclo viene eseguito finché il valore di "i" risulta essere minore di "n".

    ATTENZIONE: quando devi eseguire un ciclo per 10 volte, per esempio, stai attento da dove parti perché lo zero viene contato nel senso che se la variabile "i" parte da 0 ( vedi prima che ho scritto i = 0) allora il ciclo verrà ripetuto per " 0 1 2 3 4 5 6 7 8 9 " quindi per 10 volte se avessi messo "int i = 1" il risultato sarebbe stato un altro " 1 2 3 4 5 6 7 8 9 " ovvero 9 volte.

    Infine troviamo "i++" ovvero l'incremento della variabile "i" ( significa che ogni volta che il ciclo si esegue la variabile "i" si incrementa di 1)

    Ora ... dentro il ciclo devi scrivere ciò che il programma deve ripetere più volte, nel tuo caso dovrà:
    1- richiedere un INPUT del numero da analizzare
    2- confrontare quel numero con una variabile d'appoggio che puoi definire ( io la chiamerei così poi tu fai come vuoi non è rilevante) "MAX" in questa variabile viene salvato il numero massimo inserito FIN ORA. (per farti capire un po' meglio ecco un esempio di codice )
    
     for(int i = 0; i < n; i++)
     {
       printf("Inserire N"); //in c++ sarebbe cout etc...
       scanf("%d", &n); // in c++ sarebbe cin etc...
       if(n > max)
       {
       max = n;
       }
     }
    
    E così hai risolto il primo esercizio (Ho scritto il codice in c e non in c++, non cambia quasi nulla dal linguaggio che chiedi solo gli input e output);
  • Re: Aiuto in un programma c++

    Insesperto ha scritto:


    Molto semplice:
    1) Per il primo esercizio ti consiglio di utilizzare un ciclo "for" ( libero tu di utilizzare anche gli altri)
    SINTASSI CICLO "FOR":
    
     for(int i = 0; i < n; i++)
     {
       //qui scrivi il codice che deve eseguire
     }
     
    Allora abbiamo la variabile "i" ( è indifferente dove la dichiari o dentro il ciclo o all'inizio del programma) che serve per "contare" quante volte il ciclo è stato eseguito, poi la variabile "n" che invece è la variabile che tu chiedi in input (ovvero il numero di volte che il ciclo si deve eseguire, in parole povere se "n = 3" il ciclo si esegue tre volte), quel "i < n" significa che il ciclo viene eseguito finché il valore di "i" risulta essere minore di "n".

    ATTENZIONE: quando devi eseguire un ciclo per 10 volte, per esempio, stai attento da dove parti perché lo zero viene contato nel senso che se la variabile "i" parte da 0 ( vedi prima che ho scritto i = 0) allora il ciclo verrà ripetuto per " 0 1 2 3 4 5 6 7 8 9 " quindi per 10 volte se avessi messo "int i = 1" il risultato sarebbe stato un altro " 1 2 3 4 5 6 7 8 9 " ovvero 9 volte.

    Infine troviamo "i++" ovvero l'incremento della variabile "i" ( significa che ogni volta che il ciclo si esegue la variabile "i" si incrementa di 1)

    Ora ... dentro il ciclo devi scrivere ciò che il programma deve ripetere più volte, nel tuo caso dovrà:
    1- richiedere un INPUT del numero da analizzare
    2- confrontare quel numero con una variabile d'appoggio che puoi definire ( io la chiamerei così poi tu fai come vuoi non è rilevante) "MAX" in questa variabile viene salvato il numero massimo inserito FIN ORA. (per farti capire un po' meglio ecco un esempio di codice )
    
     for(int i = 0; i < n; i++)
     {
       printf("Inserire N"); //in c++ sarebbe cout etc...
       scanf("%d", &n); // in c++ sarebbe cin etc...
       if(n > max)
       {
       max = n;
       }
     }
    
    E così hai risolto il primo esercizio (Ho scritto il codice in c e non in c++, non cambia quasi nulla dal linguaggio che chiedi solo gli input e output);
    Attento perché la soluzione che proponi non è assolutamente corretta poiché opera su “n”, influenzando la condizione del ciclo, invece che su una altra variabile temporanea.

    È corretto chiedere N all’utente prima del ciclo e poi, nel ciclo, utilizzare un’altra variabile "temp", "n" o chiamala come vuoi.
Devi accedere o registrarti per scrivere nel forum
2 risposte