Programma c++ su serie di rettangoli

di il
1 risposte

Programma c++ su serie di rettangoli

Il testo del mio esercizio è:

• Scrivere un programma C++ che:
• Legga da console una sequenza di valori base ed altezza di rettangoli
• Il programma termina se l’area del rettangolo immesso è minore dell’area
del rettangolo precedente
• Il programma al termine stampa il numero di rettangoli letti

ho scritto il programma in questo modo, ma non si ferma nel momento in cui l'area inserita è minore della precedente. Credo che il mio errore sia nell'assegnazione di areaPrecedente con area, ma non riesco a trovare un altra soluzione. Potreste aiutarmi ?

#include <iostream>

using namespace std;
int main () {

bool continua = true;
int base, altezza;
int contaRettangoli = 0;
float area;
int areaPrecedente = 0;
    
    cout << " inserisci una sequenza di valori base ed altezza di rettangoli" << endl; 
    while(continua){
        cin >> base;
        cin >> altezza;
        if (base>0 && altezza>0){
            area = base*altezza;
            cout << " area " << area << endl;        
            areaPrecedente = area; 
            }else{
                continua = false;
        }
        if (area > areaPrecedente){
                continua = false;
            }    
        }

1 Risposte

  • Re: Programma c++ su serie di rettangoli

    L'area che calcoli (immagazzinata nella variabile 'area') viene subito copiata in areaPrecedente: pertanto il test
    if (area > areaPrecedente)
    sarà sempre FALSE perchè i due valori coincidono.
    La soluzione è chiara e se non lo fosse suggerisco di fare un FLOW-CHART ed eseguirlo con carta e penna.
Devi accedere o registrarti per scrivere nel forum
1 risposte