Programma con valore sentinella

di il
7 risposte

Programma con valore sentinella

Ciao a tutti!:)
Premetto subito che non ho mai studiato C++ quindi sono agli inizi... ho da fare il seguente programma:

scrivete un programma in C++ che determina se un cliente di un grande magazzino ha esaurito il suo credito. x ogni cliente il programma ha a disposizione questi dati:
a)nr conto cliente(un intero)
b)bilancio all'inizio del mese
c)totale acquisti cliente nel mese corrente
d)tot crediti sul conto cliente mese corrente
e)credito max consentito
il programma deve usare in ciclo while x richiedere in input queste grandezze, calcolare il nuovo bilancio del conto(=bilancio iniziale+acquisti-crediti) e determinare se supera ilcfredito max concessso;se ha superato il credito bisogna far comparire un messaggio

Io ho provato a farlo ma mi viene fuori un ciclo infinito e anche se metto -1(val sentinella) il programma non termina mai.. Come si risolve?! Grazieee!

7 Risposte

  • Re: Programma con valore sentinella

    Posta il tuo codice e vediamo di aggiustarlo.
  • Re: Programma con valore sentinella

    #include <iostream>
    using std::cout;
    using std::cin;
    using std::endl;
    
    int main()
    {
     
     int nrconto;
     int bilancio;
     int totacq;
     int totcrediti;
     int maxcredito;
     int nuovobil;
    
     nrconto=0;
    
    while(nrconto != -1)
    {
     cout<<"inserire numero conto cliente o -1 per terminare"<<endl;
     cin>>nrconto;
     cout<<"inserire bilancio di inizio mese "<<endl;
     cin>>bilancio;
     cout<<"inserire totale acquisti cliente mese corrente "<<endl;
     cin>>totacq;
     cout<<"inserire totale crediti applicati al conto nel mese corrente "<<endl;
     cin>>totcrediti;
     cout<<"inserire credito max consentito "<<endl;
     cin>>maxcredito;
    
    
    }
    
    nuovobil=bilancio+totacq-totcrediti;
    cout<<"il nuovo bilancio è: "<<nuovobil;
    
    
     if (nuovobil>maxcredito)
       cout<< "il nuovo bilancio supera il credito max consentito!!! "<<endl;
     else
       cout<<"Bravo! non sei ancora andato in rosso ;) "<<endl;
    
    return 0;
    }
    so che probabilmente l'80% sarà sbagliato, ma ho iniziato a studiare questo linguaggio da meno di una settimana..
  • Re: Programma con valore sentinella

    Fai un controllo: ad ogni inserimento fai un cout del valore inserito così vedi se i dati ricevuti sono stati acquisiti in modo corretto. Se no ti do la soluzione.
  • Re: Programma con valore sentinella

    No non mi funziona.. :/
  • Re: Programma con valore sentinella

    Aggiungi un
    cin.ignore();
    dopo ogni cout e prima ogni cin.
  • Re: Programma con valore sentinella

    Il ciclo while lo devi chiudere dopo il calcolo del credito non prima... altrimenti ti fa inserire solo i dati ma non fa il calcolo.
  • Re: Programma con valore sentinella

    Cosi dovrebbe funzionare...

    
    #include <iostream>
    using namespace std;
    
    int main()
    {
     
    int nrconto;
     int bilancio;
     int totacq;
     int totcrediti;
     int maxcredito;
     int nuovobil;
    
     nrconto=0;
    
    while(true){
     cout<<"inserire numero conto cliente o -1 per terminare"<<endl;
     cin>>nrconto;
     if(nrconto==-1)break;
    
     cout<<"inserire bilancio di inizio mese "<<endl;
     cin>>bilancio;
     cout<<"inserire totale acquisti cliente mese corrente "<<endl;
     cin>>totacq;
     cout<<"inserire totale crediti applicati al conto nel mese corrente "<<endl;
     cin>>totcrediti;
     cout<<"inserire credito max consentito "<<endl;
     cin>>maxcredito;
    
    nuovobil=bilancio+totacq-totcrediti;
    cout<<"il nuovo bilancio è: "<<nuovobil;
    
     if (nuovobil>maxcredito)
       cout<< "il nuovo bilancio supera il credito max consentito!!! "<<endl;
     else
       cout<<"Bravo! non sei ancora andato in rosso ;) "<<endl;
     }
    return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
7 risposte