Leer números en orden ascendente

Programa C++ que lea por teclado uan serie de números enteros positivos en orden creciente. la lectura de números finaliza cuando se introduzca un número que no siga la secuencia ascendente. El programa mostrará el número que rompe la secuencia y la cantidad de números introducidos.
Por ejemplo, si se introducen por teclado los números 2 4 6 11 34 7 al introducir el 7 finaliza la entrada de números porque este valor rompe la secuencia ascendente. 
Se mostrará por pantalla:
  • El número que ha roto la secuencia ascendente: 7
  • La cantidad de números introducidos: 6 
//Introducir números enteros positivos en secuencia ascendente
#include <iostream>
using namespace std;
int main()
{
    //declaración de variables
    int num,cont,ultimo;
    cont=1;     //variable para contar los números introducidos
    ultimo=0;   //variable donde se guarda el numero leido anterior al actual. Empieza en 0                       
    
    //Se lee el primer número
    do
    {
            cout << "Introduce numero positivo: ";
            cin >> num;
    }while(num<=0);  //el número introducido debe ser positivo
	
	
    while(num>=ultimo)      //mientras el número introducido sea mayor o igual que el anterior                    
    {
            ultimo=num;     //se guarda el numero actual como anterior
            do              //y continuamos leyendo numeros > 0
            {               
                cout << "Introduce numero positivo: ";
                cin >> num;
            }while(num<=0);
            cont++;        // se cuenta el número
    }                      // el bucle while acaba cuando se lee un numero menor que el anterior
	
    //mostramos los mensajes por pantalla
    cout << "\nEl numero que rompe la secuencia ascendente es " << num << endl;
    cout << "\nSe han introducido " << cont << " numeros" << endl;
    system("pause");
	
}

2 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Me ha encantado encontrar este tipo de repositorio de ejercicios, muy buenos, por cierto. Aquí mi solución:

    #include iostream
    #include conio.h

    using namespace std;

    int main(void){

    int num[32], i ,aux = 0 , aux1;
    bool asc = true;

    while (asc)
    {
    cout<<"Ingrese un numero: ";
    cin>>num[i];

    if (i > 0 && num[i] < num[i - 1]){
    aux1 = num[i];
    asc = false;
    }

    i++;
    aux++;
    }

    cout<<"La cantidad de numeros introducidos: "<<aux<<endl
    <<"El numero que ha roto la secuencia ascendente: "<<aux1;

    getch();
    return 0;
    }

    ResponderEliminar