miércoles, 3 de junio de 2026

Eliminar un dígito x de un número introducido por teclado en C++

Código del ejercicio:

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    int r = 0, p = 1, d, n, x;
    cout<<"Ingrese un número: "; cin>>n;
    cout<<"Ingrese un dígito: "; cin>>x;
    while(n > 0){
        d = n % 10;
        if(d != x){
            r = r + d * p;
            p = p * 10;
        }
        n /= 10;
    }
    if(r == 0){
        cout<<"El resultado no tiene dígitos.";
    }else{
        cout<<"El resultado es: "<<r;
    }
    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 mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
/= --> el operador de asignación de división ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.

Explicación del Código:

¿Qué hace este programa?

Este programa permite ingresar un número y un dígito específico. Luego elimina todas las veces que aparece ese dígito dentro del número y finalmente muestra el nuevo resultado.

  • Número ingresado: 123232
  • Dígito a eliminar: 2
  • Resultado final: 133

Código del programa

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");

    int r = 0, p = 1, d, n, x;

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

    cout<<"Ingrese un dígito: ";
    cin>>x;

    while(n > 0){

        d = n % 10;

        if(d != x){

            r = r + d * p;
            p = p * 10;

        }

        n /= 10;
    }

    if(r == 0){

        cout<<"El resultado no tiene dígitos.";

    }else{

        cout<<"El resultado es: "<<r;

    }

    return 0;
}

Explicación simple del código

  • #include <iostream>
    Permite utilizar cout y cin para mostrar y leer datos.
  • #include <clocale>
    Permite configurar el idioma español.
  • using namespace std;
    Evita escribir std:: antes de cout y cin.
  • int main()
    Es la función principal donde inicia el programa.
  • setlocale(LC_CTYPE, "Spanish");
    Configura caracteres en español.
  • int r = 0, p = 1, d, n, x;
    Declara las variables del programa.
  • r
    Guarda el resultado final.
  • p
    Controla la posición decimal.
  • d
    Guarda cada dígito del número.
  • n
    Guarda el número ingresado.
  • x
    Guarda el dígito que se eliminará.
  • cout<<"Ingrese un número:"
    Muestra un mensaje para ingresar un número.
  • cin>>n;
    Guarda el número ingresado por el usuario.
  • cout<<"Ingrese un dígito:"
    Solicita el dígito a eliminar.
  • cin>>x;
    Guarda el dígito a eliminar.
  • while(n > 0)
    Repite el proceso mientras el número tenga dígitos.
  • d = n % 10;
    Obtiene el último dígito del número.
  • if(d != x)
    Verifica si el dígito es diferente al que se desea eliminar.
  • r = r + d * p;
    Agrega el dígito al nuevo número.
  • p = p * 10;
    Aumenta la posición decimal.
  • n /= 10;
    Elimina el último dígito del número original.
  • if(r == 0)
    Verifica si el resultado quedó vacío.
  • cout<<"El resultado es:"
    Muestra el nuevo número sin el dígito eliminado.
  • return 0;
    Finaliza correctamente el programa.

Resumen

El programa recorre el número dígito por dígito utilizando un ciclo while. Cada dígito se compara con el valor que el usuario quiere eliminar.

Si el dígito es diferente, se guarda en un nuevo número. Si es igual, simplemente se ignora.

Finalmente se muestra el número sin el dígito eliminado.

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. ❤️