s谩bado, 13 de junio de 2026

Mostrar los n primeros n煤meros de la siguiente serie: 1,3,9,11,33,35,105,107,... en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int c = 1, vi = 1, n;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &n);
    while(c <= n){
        if(c != 1){
            if(c % 2 == 0){
                vi += 2;
            }else{
                vi *= 3;
            }
        }
        printf("%i,", vi);
        c++;
    }
    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 menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
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 asignaci贸n de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
*= --> el operador de asignaci贸n de multiplicaci贸n ( *= ) multiplica el valor del operando derecho de una variable y asigna el resultado a la variable.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicaci贸n del C贸digo:

Este programa en C genera los n primeros t茅rminos de una serie num茅rica: 1, 3, 9, 11, 33, 35, 105, 107...

C贸digo del programa

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

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

    int c = 1, vi = 1, n;

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

    while(c <= n){

        if(c != 1){

            if(c % 2 == 0){
                vi += 2;
            }else{
                vi *= 3;
            }

        }

        printf("%i,", vi);
        c++;
    }

    return 0;
}

Explicaci贸n simple

1. Librer铆as

#include <stdio.h> permite usar entrada y salida como printf y scanf.

#include <locale.h> activa soporte de idioma espa帽ol.

2. Variables

c cuenta las iteraciones, vi guarda el valor de la serie y n es el l铆mite.

3. Entrada de datos

El usuario ingresa cu谩ntos n煤meros de la serie desea ver.

4. Bucle while

Repite el proceso hasta llegar a n.

5. L贸gica de la serie

- Si la posici贸n es 1, se mantiene el valor inicial.
- Si la posici贸n es par, se suma 2.
- Si la posici贸n es impar, se multiplica por 3.

6. Salida

Se imprimen los valores de la serie uno por uno.

Resultado de la serie

Posici贸n Operaci贸n Resultado
1Inicio1
21 + 23
33 × 39
49 + 211
511 × 333
633 + 235
735 × 3105
8105 + 2107

Mostrar los x primeros n煤meros de la siguiente serie: 2,3,6,7,14,15,30,31,62,63,... en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int vi = 2, c = 0, sw = 1, x;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &x);
    while(c != x){
        printf("%i,", vi);
        if(sw == 1){
            vi++;
            sw = 0;
        }else{
            vi *= 2;
            sw = 1;
        }
        c++;
    }
    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 de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
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.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
*= --> el operador de asignaci贸n de multiplicaci贸n ( *= ) multiplica el valor del operando derecho de una variable y asigna el resultado a la variable.

Explicaci贸n del C贸digo:

Este programa muestra los primeros n煤meros de la siguiente serie:

2, 3, 6, 7, 14, 15, 30, 31, 62, 63...

La serie se genera alternando dos operaciones:

  • Sumar 1
  • Multiplicar por 2

C贸digo en C

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

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

    int vi = 2, c = 0, sw = 1, x;

    printf("Ingrese un n煤mero: ");
    scanf("%i", &x);

    while(c != x){
        printf("%i,", vi);

        if(sw == 1){
            vi++;
            sw = 0;
        }else{
            vi *= 2;
            sw = 1;
        }

        c++;
    }

    return 0;
}

Explicaci贸n de Cada Parte del C贸digo

C贸digo Explicaci贸n
#include <stdio.h> Permite usar funciones de entrada y salida como printf y scanf.
#include <locale.h> Permite configurar el idioma espa帽ol.
setlocale(LC_CTYPE, "Spanish"); Configura caracteres especiales del idioma espa帽ol.
int vi = 2 Guarda el valor inicial de la serie.
int c = 0 Variable contador para controlar cu谩ntos n煤meros se mostrar谩n.
int sw = 1 Variable interruptor que alterna entre sumar 1 y multiplicar por 2.
int x Guarda la cantidad de n煤meros que ingresar谩 el usuario.
printf("Ingrese un n煤mero: "); Muestra un mensaje solicitando un n煤mero.
scanf("%i", &x); Lee el n煤mero ingresado por el usuario.
while(c != x) Repite el proceso hasta mostrar la cantidad indicada.
printf("%i,", vi); Muestra el n煤mero actual de la serie.
if(sw == 1) Verifica si debe sumar 1.
vi++; Incrementa el valor en 1.
vi *= 2; Multiplica el valor por 2.
sw = 0 o sw = 1 Cambia el estado del interruptor para alternar operaciones.
c++; Incrementa el contador.
return 0; Finaliza correctamente el programa.

Funcionamiento de la Serie

Paso Operaci贸n Resultado
Inicio Valor inicial 2
1 2 + 1 3
2 3 × 2 6
3 6 + 1 7
4 7 × 2 14
5 14 + 1 15
6 15 × 2 30
El programa alterna entre sumar 1 y multiplicar por 2 para generar toda la serie correctamente.

Generar la siguiente serie 1,1,1,2,2,2,3,3,3,4,4,4,... en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int a = 1, sw = 1, stop = 3, b;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &b);
    while(a <= b){
        printf("%i,", a);
        if(sw < stop){
            sw++;
        }else{
            a++;
            sw = 1;
        }
    }
    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 menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
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 menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicaci贸n del C贸digo:

Este programa genera la siguiente serie:

1,1,1,2,2,2,3,3,3,4,4,4,...

Cada n煤mero se repite 3 veces antes de pasar al siguiente.

C贸digo del Programa

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

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

    int a = 1, sw = 1, stop = 3, b;

    printf("Ingrese un n煤mero: ");
    scanf("%i", &b);

    while(a <= b){

        printf("%i,", a);

        if(sw < stop){
            sw++;
        }else{
            a++;
            sw = 1;
        }
    }

    return 0;
}

Explicaci贸n de Cada Parte del C贸digo

C贸digo Explicaci贸n
#include <stdio.h> Permite usar funciones como printf y scanf.
#include <locale.h> Permite configurar el idioma espa帽ol.
int main() Funci贸n principal donde inicia el programa.
setlocale(LC_CTYPE, "Spanish"); Configura el idioma espa帽ol para caracteres especiales.
int a = 1 Variable que almacena el n煤mero que se mostrar谩.
int sw = 1 Contador que controla cu谩ntas veces se repite el n煤mero.
int stop = 3 Indica que cada n煤mero debe repetirse 3 veces.
int b Guarda el n煤mero l铆mite ingresado por el usuario.
printf("Ingrese un n煤mero: "); Muestra un mensaje solicitando un n煤mero.
scanf("%i", &b); Lee el n煤mero ingresado por el usuario.
while(a <= b) Repite el proceso mientras "a" sea menor o igual al l铆mite.
printf("%i,", a); Muestra el n煤mero actual de la serie.
if(sw < stop) Verifica si el n煤mero a煤n no se repiti贸 3 veces.
sw++; Incrementa el contador de repeticiones.
a++; Pasa al siguiente n煤mero de la serie.
sw = 1; Reinicia el contador para repetir nuevamente.
return 0; Finaliza correctamente el programa.
Ejemplo:

Si el usuario ingresa el n煤mero 4, el programa mostrar谩:

1,1,1,2,2,2,3,3,3,4,4,4,

Pedir un n煤mero y luego ordenar de menor a mayor los d铆gitos en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int c = 0, aux, r, ac, n;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &n);
    while(c <= 9){
        aux = n;
        while(aux > 0){
            r = aux % 10;
            if(r == c){
                ac = (ac * 10) + r;
            }
            aux = (aux - r) / 10;
        }
        c++;
    }
    printf("%i", ac);
    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 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.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
if --> use if para especificar un bloque de c贸digo que se ejecutar谩, si una condici贸n especificada es verdadera.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicaci贸n del C贸digo:

Este programa en C pide un n煤mero al usuario y luego ordena sus d铆gitos de menor a mayor.

Ejemplo:

  • Entrada: 53142
  • Salida: 12345

C贸digo

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

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

    int c = 0, aux, r, ac = 0, n;

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

    while(c <= 9){

        aux = n;

        while(aux > 0){

            r = aux % 10;

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

            aux = (aux - r) / 10;
        }

        c++;
    }

    printf("%i", ac);

    return 0;
}

1. Librer铆as

#include <stdio.h>
#include <locale.h>
  • stdio.h: Permite usar funciones como printf y scanf.
  • locale.h: Configura caracteres del idioma espa帽ol.

2. Funci贸n principal

int main(){

Aqu铆 inicia la ejecuci贸n del programa.

3. Configuraci贸n del idioma

setlocale(LC_CTYPE, "Spanish");

Permite trabajar correctamente con caracteres del idioma espa帽ol.

4. Declaraci贸n de variables

int c = 0, aux, r, ac = 0, n;
  • c: contador desde 0 hasta 9.
  • aux: copia temporal del n煤mero.
  • r: guarda cada d铆gito.
  • ac: almacena el n煤mero ordenado.
  • n: n煤mero ingresado por el usuario.

5. Pedir el n煤mero

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

El programa solicita al usuario ingresar un n煤mero.

6. Recorrer del 0 al 9

while(c <= 9){

Este ciclo revisa cada n煤mero desde 0 hasta 9.

7. Copiar el n煤mero

aux = n;

Se guarda una copia del n煤mero original.

8. Recorrer cada d铆gito

while(aux > 0){

Este ciclo analiza cada d铆gito del n煤mero.

9. Obtener el 煤ltimo d铆gito

r = aux % 10;

El operador % obtiene el 煤ltimo d铆gito.

Ejemplo:

  • 523 % 10 = 3

10. Comparar el d铆gito

if(r == c){

Verifica si el d铆gito es igual al contador actual.

11. Formar el n煤mero ordenado

ac = (ac * 10) + r;

Agrega el d铆gito al nuevo n煤mero ordenado.

Ejemplo:

  • Si ac = 12 y r = 3
  • Nuevo valor: 123

12. Eliminar el 煤ltimo d铆gito

aux = (aux - r) / 10;

Elimina el 煤ltimo d铆gito para continuar con el siguiente.

13. Incrementar el contador

c++;

Pasa al siguiente n煤mero para seguir ordenando.

14. Mostrar resultado

printf("%i", ac);

Muestra el n煤mero ordenado de menor a mayor.

Funcionamiento General

El programa revisa el n煤mero varias veces:

  • Primero busca todos los 0.
  • Luego todos los 1.
  • Despu茅s todos los 2.
  • Y as铆 hasta el 9.

De esa manera los d铆gitos quedan ordenados de menor a mayor.

Ejemplo Completo

  • N煤mero ingresado: 53142
  • Resultado ordenado: 12345

Pedir un n煤mero y determinar si un n煤mero es perfecto en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int ac = 0, n, r;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &n);
    int i = n - 1;
    while(i > 0){
        r = n % i;
        if(r == 0){
            ac += i;
        }
        i--;
    }
    if(n == ac){
        printf("El n煤mero es perfecto.");
    }else{
        printf("El n煤mero no es perfecto.");
    }
    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.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
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 asignaci贸n de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
-- --> el operador de decremento (--) disminuye (o resta de a uno) su operando y retorna un valor.

Explicaci贸n del C贸digo:

¿Qu茅 hace el programa?

Este programa solicita al usuario un n煤mero y verifica si es un n煤mero perfecto.

Un n煤mero perfecto es aquel cuya suma de todos sus divisores exactos, excepto el mismo n煤mero, es igual al n煤mero original.

Ejemplo:

N煤mero: 6

Divisores: 1, 2 y 3

1 + 2 + 3 = 6

Entonces, el n煤mero 6 es perfecto.

C贸digo del Programa

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

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

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

    int i = n - 1;

    while(i > 0){

        r = n % i;

        if(r == 0){
            ac += i;
        }

        i--;
    }

    if(n == ac){
        printf("El n煤mero es perfecto.");
    }else{
        printf("El n煤mero no es perfecto.");  
    }

    return 0;
}

Explicaci贸n Simple del C贸digo

#include <stdio.h>
Permite usar funciones como printf y scanf.

#include <locale.h>
Permite configurar caracteres y lenguaje en espa帽ol.

int main()
Es la funci贸n principal donde inicia el programa.

setlocale(LC_CTYPE, "Spanish");
Configura el idioma espa帽ol para mostrar correctamente caracteres especiales.

int ac = 0, n, r;
Declara variables:

ac → almacena la suma de divisores.
n → guarda el n煤mero ingresado.
r → guarda el residuo de una divisi贸n.

printf y scanf
Solicitan y almacenan el n煤mero ingresado por el usuario.

int i = n - 1;
Inicializa la variable i con un n煤mero menor a n para buscar divisores.

while(i > 0)
Repite el proceso mientras i sea mayor que cero.

r = n % i;
Obtiene el residuo de dividir n entre i.

if(r == 0)
Verifica si i es divisor exacto de n.

ac += i;
Suma el divisor encontrado al acumulador.

i--;
Disminuye i en 1 para seguir revisando divisores.

if(n == ac)
Comprueba si la suma de divisores es igual al n煤mero ingresado.

printf("El n煤mero es perfecto.");
Muestra el mensaje si el n煤mero es perfecto.

printf("El n煤mero no es perfecto.");
Muestra el mensaje si el n煤mero no es perfecto.

return 0;
Finaliza correctamente el programa.

Determinar la frecuencia de d铆gitos de un n煤mero en C

C贸digo del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int c = 0, r = 0, aux, fd, n;
    printf("Ingrese un n煤mero: ");
    scanf("%i", &n);
    while(c <= 9){
        aux = n;
        fd = 0;
        while(aux > 0){
            r = aux % 10;
            if(r == c){
                fd++;
            }
            aux = (aux - r) / 10;
        }
        if(fd > 0){
            printf("La frecuencia de %i es: %i\n", c, fd);
        }
        c++;
    }
    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 menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
if --> use if para especificar un bloque de c贸digo que se ejecutar谩, si una condici贸n especificada es 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.
== --> 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.
\n --> es el car谩cter de salto de l铆nea y se usa para indicar el fin de una l铆nea de texto y el inicio de una l铆nea nueva.

Explicaci贸n del C贸digo:

Este programa permite contar cu谩ntas veces aparece cada d铆gito dentro de un n煤mero ingresado por el usuario.

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

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

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

    while(c <= 9){
        aux = n;
        fd = 0;

        while(aux > 0){
            r = aux % 10;

            if(r == c){
                fd++;
            }

            aux = (aux - r) / 10;
        }

        if(fd > 0){
            printf("La frecuencia de %i es: %i\n", c, fd);  
        }

        c++;
    }

    return 0;
}

Explicaci贸n del C贸digo

C贸digo Explicaci贸n
#include <stdio.h> Permite utilizar funciones como printf y scanf.
#include <locale.h> Se utiliza para configurar el idioma espa帽ol.
int main() Es la funci贸n principal donde inicia el programa.
setlocale(LC_CTYPE, "Spanish"); Configura el idioma espa帽ol para mostrar correctamente los caracteres.
int c = 0, r = 0, aux, fd, n; Declaraci贸n de variables:

c: d铆gito que se analizar谩.
r: almacena el 煤ltimo d铆gito.
aux: copia temporal del n煤mero.
fd: frecuencia del d铆gito.
n: n煤mero ingresado por el usuario.
printf("Ingrese un n煤mero: "); Muestra un mensaje solicitando un n煤mero.
scanf("%i", &n); Guarda el n煤mero ingresado por el usuario.
while(c <= 9) Recorre todos los d铆gitos del 0 al 9.
aux = n; Copia el n煤mero original en la variable auxiliar.
fd = 0; Reinicia el contador de frecuencia.
while(aux > 0) Recorre cada d铆gito 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 que se busca.
fd++; Incrementa el contador de frecuencia.
aux = (aux - r) / 10; Elimina el 煤ltimo d铆gito para continuar analizando el n煤mero.
if(fd > 0) Verifica si el d铆gito apareci贸 al menos una vez.
printf("La frecuencia de %i es: %i\n", c, fd); Muestra la cantidad de veces que aparece el d铆gito.
c++; Pasa al siguiente d铆gito.
return 0; Finaliza correctamente el programa.

Funcionamiento del Programa

Si el usuario ingresa el n煤mero:

1223341

El programa mostrar谩:

La frecuencia de 1 es: 2
La frecuencia de 2 es: 2
La frecuencia de 3 es: 2
La frecuencia de 4 es: 1

Calcular el producto entre a y b sin utilizar multiplicaci贸n en C

C贸digo del ejercicio:

#include <stdio.h>

int main(){
    double ac = 0, a, b;
    int c = 0;
    printf("a: ");
    scanf("%lf", &a);
    printf("b: ");
    scanf("%lf", &b);
    while(c < b){
        ac += a;
        c++;
    }
    printf("%.2lf", ac);
    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.
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.
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.
double --> convierte un n煤mero entero en un n煤mero de punto flotante de doble precisi贸n, tiene un tama帽o de 64 bits, es usado para n煤meros de menos de 15 cifras decimales.
while --> el ciclo while recorre un bloque de c贸digo siempre que una condici贸n espec铆fica sea verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
+= --> el operador de asignaci贸n de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicaci贸n del C贸digo:

Este programa calcula el producto entre dos n煤meros sin utilizar el operador de multiplicaci贸n (*). Para ello, realiza sumas repetidas.

C贸digo en C

#include <stdio.h>

int main(){
    double ac = 0, a, b;
    int c = 0;

    printf("a: ");
    scanf("%lf", &a);

    printf("b: ");
    scanf("%lf", &b);

    while(c < b){
        ac += a;
        c++;
    }

    printf("%.2lf", ac);

    return 0;
}

Explicaci贸n simple de cada parte del c贸digo

C贸digo Explicaci贸n
#include <stdio.h> Incluye la librer铆a est谩ndar de entrada y salida para usar funciones como printf y scanf.
int main() Funci贸n principal donde inicia el programa.
double ac = 0, a, b; Declara variables de tipo decimal.
ac: almacena el resultado.
a y b: n煤meros ingresados.
int c = 0; Variable contador utilizada para controlar el ciclo.
printf("a: "); Muestra el mensaje para ingresar el valor de a.
scanf("%lf", &a); Guarda el valor ingresado por el usuario en la variable a.
printf("b: "); Muestra el mensaje para ingresar el valor de b.
scanf("%lf", &b); Guarda el valor ingresado por el usuario en la variable b.
while(c < b) Repite el bloque de instrucciones mientras c sea menor que b.
ac += a; Suma el valor de a al acumulador. Esto reemplaza la multiplicaci贸n.
c++; Incrementa el contador en 1.
printf("%.2lf", ac); Muestra el resultado final con dos decimales.
return 0; Finaliza correctamente el programa.

Ejemplo de funcionamiento

Si el usuario ingresa:

a = 4
b = 3

El programa realiza:

4 + 4 + 4 = 12

Resultado final:

12.00

Mostrar los n primeros n煤meros de la siguiente serie: 1,3,9,11,33,35,105,107,... en C

C贸digo del ejercicio: #include <stdio.h> #include <locale.h> int main (){     setlocale (LC_CTYPE, "Spanis...

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