domingo, 14 de junio de 2026

Mostrar los x primeros números de la siguiente serie: 1,2,4,7,8,10,13,14,16,19,... en C

Código del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int s = 1, sw = 1, c = 0, x;
    printf("Ingrese un número: ");
    scanf("%i", &x);
    while(c < x){
        printf("%i,", s);
        if(sw == 1){
            s++;
            sw = 2;
        }else if(sw == 2){
            s += 2;
            sw = 3;
        }else{
            s += 3;
            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 menor que ( < ) devuelve true si el operando izquierdo es menor 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.
else if --> use else if para especificar una nueva condición para probar, si la primera 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 suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.

Explicación del Código:

El programa muestra los primeros números de la siguiente serie:

1, 2, 4, 7, 8, 10, 13, 14, 16, 19...

La serie funciona sumando:

+1, +2, +3, +1, +2, +3...

Código en C

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

int main(){

    setlocale(LC_CTYPE, "Spanish");

    int s = 1, sw = 1, c = 0, x;

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

    while(c < x){

        printf("%i,", s);

        if(sw == 1){

            s++;
            sw = 2;

        }else if(sw == 2){

            s += 2;
            sw = 3;

        }else{

            s += 3;
            sw = 1;
        }

        c++;
    }

    return 0;
}

Explicación 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 caracteres en español.
int s = 1 Guarda el número actual de la serie.
int sw = 1 Controla qué cantidad se sumará: 1, 2 o 3.
int c = 0 Contador de números mostrados.
int x Guarda cuántos números quiere mostrar el usuario.
printf("Ingrese un número: "); Solicita un número al usuario.
scanf("%i", &x); Lee el número ingresado.
while(c < x) Repite el proceso mientras el contador sea menor que x.
printf("%i,", s); Muestra el número actual de la serie.
if(sw == 1) Si sw vale 1, se suma 1.
s++; Incrementa s en 1.
sw = 2; Cambia el estado para sumar 2 después.
else if(sw == 2) Si sw vale 2, se suma 2.
s += 2; Incrementa s en 2.
sw = 3; Cambia el estado para sumar 3.
else Cuando sw no es 1 ni 2, se ejecuta este bloque.
s += 3; Incrementa s en 3.
sw = 1; Reinicia el patrón para volver a sumar 1.
c++; Aumenta el contador.
return 0; Finaliza correctamente el programa.

Funcionamiento de la Serie

Número Actual Operación Resultado
1 +1 2
2 +2 4
4 +3 7
7 +1 8
8 +2 10
10 +3 13

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