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

    [C++] Errore di codice per un esercizio

    Ciao a tutti, domani ho l'esame e, facendo gli esercizi, ho notato che uno non mi riesce.

    Testo: Simulare le operazioni di un registratore di cassa, per ogni cliente inserire il prezzo unitario e la quantità, calcolare e visualizzare il totale da pagare, si termina con prezzo e quantità entrambi 0. Dopo aver introdotto la somma versata dal cliente, calcolare e visualizzare il resto da dare al cliente.


    Questo è quello che ho fatto io:

    codice:
     
    
    #include <iostream>
    using namespace std;
    int main () {
        int n, k, quant, prezzo, tot=0, soldiricev, resto, I;
        //Dovrebbe continuare a chiedermi di inserire i dati finchè non inserisco ad entrambe le cose 0.
        for (I=0;I<n; I++) {
                    while ((prezzo==0) && (quant==0));
            cout<<"Inserisci il prezzo unitario dell'oggetto."<<endl;
            cin>>prezzo;
            cout<<"Inserisci la quantità dell'oggetto."<<endl;
            cin>>quant;
        //Mi calcola il totale
            tot=prezzo*quant;
            }
            cout<<"Il totale che il cliente deve pagare e':"<<tot<<endl;
            cout<<"Inserisci il numero di euro ricevuti dal cliente."<<endl;
            cin>>soldiricev;
            resto= soldiricev-tot;
            cout<<"Il resto e':"<<resto<<endl;
            system ("pause");
            }
    Il problema è che mi fà inserire il prezzo unitario e l'importo soltanto due volte e, inoltre, il totale me lo carica con solo gli ultimi due dati inseriti!

    Dove stà l'errore? io proprio non capisco...

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Usi variabili non inizializzate. Quanto vale n in quel ciclo for?
    (Stessa cosa, prezzo e quant).
    Suggerimento: quando dichiari variabili è meglio inizializzarle a un valore noto.
    Attento al while: se entrambe le condizioni sono vere, il ciclo non finirà mai.
    Puoi spostare quelle due condizioni nel ciclo for.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Vero, ho notato solo ora la N che avevo messo (per sbaglio) nel ciclo for.

    Però, se non ci metto N, cosa dovrei metterci? ho provato di tutto, ma non capisco cosa metterci.

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Hai già un ciclo condizionale: il while. Puoi eliminare il for e utilizzare un do while

    codice:
        int quant, prezzo, tot, soldiricev, resto;
        do {
            ...
        } while ( (prezzo != 0) || (quant !=0));
    Nota che non ho inizializzato le variabili perché vengono settate all'interno del ciclo.
    Quando si inserisce 0 sia in prezzo sia quant, il ciclo esce.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

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.