josecarlosgutierrez2002@gmail.com

 avatar
Jose20025
c_cpp
2 years ago
2.7 kB
7
Indexable
Never
#include <iostream>

using namespace std;

int sizeNumero(int numero);

int main()
{
    long int limiteInferior, limiteSuperior, dentroRango = 0, num, numIngresados = 0, fueraRango = 0, igualLimite = 0;
    long int aux, size, aux2 = 10, digito;
    system("cls");
    cout << "Digite el limite inferior: ";
    cin >> limiteInferior;
    cout << "Digite el limite superior: ";
    cin >> limiteSuperior;

    while (limiteInferior > limiteSuperior)
    {
        cout << "\nEl limite superior no puede ser menor al inferior!" << endl;
        cout << "Introduzca nuevamente" << endl;
        cout << "Digite el limite superior: ";
        cin >> limiteSuperior;
    }

    cout << "\nIngrese un numero(0 para salir): ";
    cin >> num;

    while (num != 0)
    {
        aux = num;

        if (num > limiteInferior && num < limiteSuperior)
        {
            dentroRango += num;
        }
        else
        {
            if (num < limiteInferior || num > limiteSuperior)
            {
                fueraRango++;
            }
            else
            {
                if (num == limiteSuperior || num == limiteInferior)
                {
                    igualLimite++;
                }
            }
        }

        size = sizeNumero(num);

        if (size > 10)
        {
            for (int i = 1; size > 0; i++)
            {
                if (i == 2)
                {
                    aux2 = 100;
                }
                aux2 *= 10;
                size--;
            }

            numIngresados = (numIngresados * aux2) + num;
        }
        else
        {
            numIngresados = (numIngresados * aux2) + num;
        }

        cout << "Ingrese un numero(0 para salir): ";
        cin >> num;
    }

    system("cls");
    cout << "Limite inferior: " << limiteInferior << endl;
    cout << "Limite superior: " << limiteSuperior << endl;

    cout << "\nNumeros ingresados: ";

    while (numIngresados > 0)
    {
        digito = numIngresados % 10;
        if (numIngresados >= 10)
        {
            cout << digito << ", ";
        }
        else
        {
            cout << digito << endl;
        }
        numIngresados /= 10;
    }

    cout << "\nSuma de numeros dentro del rango: " << dentroRango << endl;
    cout << "Numeros fuera de rango: " << fueraRango << endl;
    cout << "Numeros igual al limite: " << igualLimite << endl;

    return 0;
}

int sizeNumero(int numero)
{
    int size = 0;

    while (numero > 0)
    {
        size++;
        numero /= 10;
    }

    return size;
}