jueves, 4 de junio de 2026

Pedir un número y luego ordenar de menor a mayor los dígitos en C++

Código del ejercicio:

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    int ac = 0, c = 0, r = 0, aux = 0, n;
    cout<<"Ingrese un número: "; cin>>n;
    while(c <= 9){
        aux = n;
        while(aux > 0){
            r = aux % 10;
            if(r == c){
                ac = (ac * 10) + r;
            }
            aux = (aux - r) / 10;
        }
        c++;
    }
    cout<<ac;
    return 0;
}

Definición de los códigos del ejercicio:

#include <iostream> --> significa flujo de entrada-salida estándar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuración regional.
using namespace std; --> un espacio de nombres es una colección de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca estándar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la función main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecución del programa. Cuando se ejecuta un programa C++, el control de ejecución va directamente a la función main(). Cada programa C++ tiene una función main().
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida estándar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el teclado.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicación del Código:

Este programa solicita un número al usuario y luego ordena sus dígitos de menor a mayor utilizando ciclos while.

Código del Programa

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    
    int ac = 0, c = 0, r = 0, aux = 0, n;

    cout << "Ingrese un número: ";
    cin >> n;

    while(c <= 9){

        aux = n;

        while(aux > 0){

            r = aux % 10;

            if(r == c){
                ac = (ac * 10) + r;
            }

            aux = (aux - r) / 10;
        }

        c++;
    }

    cout << ac;

    return 0;
}

Explicación Paso a Paso

  • #include <iostream>
    Permite utilizar cout y cin para mostrar mensajes y leer datos.
  • #include <clocale>
    Sirve para configurar el idioma español en el programa.
  • using namespace std;
    Evita escribir std:: antes de cout y cin.
  • int ac = 0, c = 0, r = 0, aux = 0, n;
    Declaración de variables:

    ac: almacena el número ordenado.
    c: contador que va desde 0 hasta 9.
    r: guarda cada dígito del número.
    aux: copia temporal del número.
    n: número ingresado por el usuario.
  • cout << "Ingrese un número: ";
    Muestra un mensaje solicitando un número.
  • cin >> n;
    Guarda el número ingresado por el usuario.
  • while(c <= 9)
    Recorre los números del 0 al 9 para ordenar los dígitos de menor a mayor.
  • aux = n;
    Copia el número original para poder recorrerlo sin perderlo.
  • while(aux > 0)
    Recorre todos los dígitos del número.
  • r = aux % 10;
    Obtiene el último dígito del número.
  • if(r == c)
    Verifica si el dígito encontrado es igual al contador actual.
  • ac = (ac * 10) + r;
    Agrega el dígito al nuevo número ordenado.
  • aux = (aux - r) / 10;
    Elimina el último dígito para continuar revisando los demás.
  • c++;
    Incrementa el contador para seguir buscando el siguiente dígito.
  • cout << ac;
    Muestra el número ordenado de menor a mayor.
  • return 0;
    Finaliza correctamente el programa.

Ejemplo de Ejecución

Si el usuario ingresa:

53142

El programa mostrará:

12345

No hay comentarios.:

Publicar un comentario

Convertir millas a pies en HTML y JavaScript

Código del ejercicio: <! DOCTYPE html > < html lang = "es" > < head >     < meta charset = ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️