Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Programma C++ per la scuola semplice

    Salve.. dovrei fare un programma per la scuola.. Insomma,Si deve organizzare un programma che chiede nome e età la controlla: se è maggiore di 18 anni incrementi il contatore dei maggiorenni. Chiede se l'elenco dei nomi e età è finito . Se no continui a chiedere.
    Alla fine delle ripetizioni viene scritto il numero dei maggiorenni registrati dal contatore. Grazie a tutti quelli che risponderanno
    Questo è un abbozzo (che è sbagliato).. Soluzioni?
    PS : sono alle prime armi,non ridete per qualche errore stupido o banale

    codice:
    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    int main()
    {
        int cont=0;
        int eta=0;
        cout << "inserisci eta': ";
        cin >> eta;
        if (eta>=18,cont++)
            cout << "Numero dei maggiorenni e': " << cont;
        system("PAUSE");
        return 0;  
    }

  2. #2

    Moderazione

    Benvenuto sul forum; ti ricordo che ogni thread deve avere un titolo significativo (con tag del linguaggio di riferimento) e il codice va inserito nei blocchi [code] ... [/code] perché non perda l'indentazione. Qui ho corretto io, in futuro ricordatene (e magari dai un'occhiata al regolamento di sezione).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Quanto al tuo programma, la parte "centrale" della logica è corretta (anche se quel "cont++" non va certamente lì), quello manca è tutta la parte di ripetizione finché l'utente non decide che la lista è finita. Una possibilità per implementarla è usare un ciclo do...while, applicato ad una qualche condizione che è vera se l'utente vuole continuare ad inserire dati.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Aiuto mi sto ad impazzire , allora sono arrivato a:
    codice:
    int main()
    {
        int cont=0;
        int eta=0;
        int finito;
        cout << "inserisci eta': ";
        cin >> eta;
        cout << "E' finito l'elenco? " <<endl;
        cin >> finito;
        if (finito==1) {
            cout << "Il numero dei maggiorenni e': " <<cont;
        }
    poi non so continuare.. so che manca l'incremento ma non so dove metterlo..

  5. #5
    Ciao,
    quando utilizzi la if non mettere dentro niente tra le parentesi tonde tranne la condizione come cont++, infatti lo schema da seguire è questo:
    arriva l'età delo studente, il programma guarda se è maggiore di 18 anni, se lo è esegue l'incremento del count senò no:
    codice:
    if(eta>=18) //Questa è la condizione dell'if
    cout++; //Questo è ciò che esegue se la condizione dell'if si verifica.
    Per utilizzare il ciclo do...while come consigliato da @MItaly prova ad utilizzare una strategia semplice: tu scrivi all'utente di inserire il numero 0 per terminare il programma, così quando il programma legge il numero 0 esce dal ciclo do..while e successivamente scrive come output il numero degli studenti che sono maggiorenni. Ovviamente devi mettere la if, cin e cout denro il ciclo do..while.

    Ciao e... buona programmazione!!!
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  6. #6
    Ciao,
    ma per che cosa lo vorresti usare int finito; ?
    Mettendo finito come int lo dichiari come variabile nuerica mentre per farlo come vorresti tu (cioè rispondendo si o no) dovresti fare un lavoro molto più lungo ed inutile a mio parere lo dovresti eliminare, poi fai come vuoi.
    Per svolgere il ciclo do .. While devi fare così:
    codice:
    do
    {
     //inserisci cout << "inserisci eta': ";    cin >> eta; e la if
    }
    while(//scrivi la condizione per stare nel ciclo, che in questo caso è che l'età sia diversa da zero);
    Ciao prova a sistemarlo, se poi non cela fai dicci quali problemi riscontri, così possiamo aiutarti
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  7. #7

    Penso di aver risolto

    Ecco a dove sono arrivato
    codice:
    include <iostream>
    #include <stdlib.h>
    #include <cstring>
    using namespace std;
    int main()
    {
    int cont=0;
    int eta;
    char Nome[25];
    char Risposta[2];
    int i=0;
    do {
    cout << "Inserisci il nome della persona "<<i+1;
    cout<<" \n";
    cin >> Nome;
    cout<<" \n";
    cout << "Inserisci l' eta' della persona "<<i+1;
    cout<<" \n";
    cin >> eta;
    if (eta>=18) cont++;
    
    cout <<"vuoi inserire un altra persona ?";
    cout<<" \t";
    cin >> Risposta;
    
    i++;
    } while(strcmp(Risposta,"si")==0);
    cout<<" \n";
    cout << "Numero dei maggiorenni e':" << cont;
    cout<<" \n";
    system("PAUSE");
    return 0;
    }
    Si possono fare miglioramenti?
    Era meglio che mi rileggevo i cicli while ,for..anche do.. mi ero un po confuso

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì ... devi scrivere

    char Risposta[3];

    perché altrimenti non puoi inserire una stringa di 2 caratteri (si/no)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9

    Risolto

    Grazie a tutti. Siete stati gentilissimi!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.