domingo, 14 de junio de 2026

Determinar si un número natural es capicúa en C

Código del ejercicio:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int digito = 0, invertir = 0, num;
    printf("Ingrese un número: ");
    scanf("%i", &num);
    int aux = num;
    while(num > 0){
        digito = num % 10;
        invertir = (invertir * 10) + digito;
        num = (num - digito) / 10;
    }
    if(invertir == aux){
        printf("Es capicúa.");
    }else{
        printf("No es capicúa.");
    }
    return 0;
}

Definición de los códigos del ejercicio:

#include <stdio.h> --> significa "standard input-output header" (cabecera estándar E/S), es un archivo de encabezado que tiene la información necesaria para incluir las funciones relacionadas con la entrada/salida en nuestro programa. Ejemplo printf, scanf, etc.
#include <locale.h> --> especificador de configuración regional.
int --> dato entero de 32 bits.
main() --> es la primera función de cada programa C que es responsable de iniciar la ejecución y finalización del programa. Es una función especial que siempre comienza a ejecutar código desde el ' principal ' que tiene ' int ' o ' void ' como tipo de datos de retorno. En otras palabras, una función main() es un punto de entrada del código de programación para iniciar su ejecución.
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.
printf() --> permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
scanf() --> permite entrar datos en la memoria del ordenador a través del 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.
% --> 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.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.

Explicación del Código:

Este programa verifica si un número natural es capicúa. Un número capicúa se lee igual de izquierda a derecha y de derecha a izquierda.

Código en C

#include <stdio.h>
#include <locale.h>

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

    int digito = 0, invertir = 0, num;

    printf("Ingrese un número: ");
    scanf("%i", &num);

    int aux = num;

    while(num > 0){
        digito = num % 10;
        invertir = (invertir * 10) + digito;
        num = (num - digito) / 10;
    }

    if(invertir == aux){
        printf("Es capicúa.");
    }else{
        printf("No es capicúa.");
    }

    return 0;
}

Explicación del Código

Código Explicación
#include <stdio.h> Permite usar funciones como printf y scanf para mostrar y leer datos.
#include <locale.h> Permite configurar el idioma del programa.
setlocale(LC_CTYPE, "Spanish"); Configura el idioma español para mostrar caracteres especiales.
int digito = 0, invertir = 0, num; Declara variables:

digito: almacena cada dígito del número.
invertir: guarda el número invertido.
num: almacena el número ingresado.
printf("Ingrese un número: "); Muestra un mensaje solicitando un número.
scanf("%i", &num); Permite ingresar el número por teclado.
int aux = num; Guarda una copia del número original.
while(num > 0) Repite el proceso mientras el número sea mayor que cero.
digito = num % 10; Obtiene el último dígito del número.
invertir = (invertir * 10) + digito; Forma el número invertido agregando cada dígito.
num = (num - digito) / 10; Elimina el último dígito del número original.
if(invertir == aux) Compara el número invertido con el original.
printf("Es capicúa."); Muestra que el número sí es capicúa.
printf("No es capicúa."); Muestra que el número no es capicúa.
return 0; Finaliza correctamente el programa.

Ejemplo

Si el usuario ingresa: 1331

El número invertido también será: 1331

Como ambos son iguales, el programa mostrará: Es capicúa.

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