Leggi numeri fino a due consecutivi uguali

Inserire ad oltranza numeri interi da tastiera finché non vengono inseriti due numeri uguali consecutivi

Esercizio apparentemente semplice ma richiede la padronanza del ciclo while e l’intuizione sul come “salvare” il vecchio valore di una variabile prima di leggere il successivo.

Altra caratteristica interessante è la scelta del ciclo while invece del do-while. Il ciclo while, avendo la condizione in testa in alcune circostanze può risultare svantaggioso se non viene inizializzata la variabile/condizione in modo esplicito da far entrare almeno una volta il flusso del programma nel ciclo. Qui ad esempio la condizione pone l’uguaglianza tra il numero letto e quello precedente, ma all’inizio sono entrambi nulli quindi occorre un trucco per con il vecchio numero posto a -1.

#include <iostream>

using namespace std;

int main() {
    int n = 0;
    int vecchion = -1;
    
    while(n != vecchion)
    {
      vecchion = n;
      cout << "Inserisci un numero intero ";
      cin >> n;
      
    }  

    return 0;
}

Possiamo complicare leggermente l’esercizio conteggiando quanti tentativi sono stati fatti prima di trovare i due numeri uguali. Al lettore la soluzione.

Ultima modifica 20 Ottobre 2023