martes, 16 de junio de 2026

Mostrar la suma de los números impares en un rango de dos números, también sumar el rango de los números en C

Ejemplo: si ingreso el número 9 y 22, que sume los números impares entre el 9 y 22 pero que también sume el 9 y 22.
9,10,11,12,13,14,15,16,17,18,19,20,21,22 = 127

Código del ejercicio:

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

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int sumImpar = 0, num1, num2;
    printf("Ingrese un número: ");
    scanf("%i", &num1);
    printf("Ingrese un número: ");
    scanf("%i", &num2);
    int n1 = num1 + 1, n2 = num2 - 1;
    while(n1 <= n2){
        if(n1 % 2 != 0){
            sumImpar += n1;
        }
        n1++;
    }
    printf("%i", sumImpar + num1 + num2);
    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 de modulo ( % ) devuelve el resto de la división.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
+= --> 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:

1. Librerías utilizadas

stdio.h permite usar entrada y salida de datos con printf y scanf.
locale.h configura el idioma del sistema en español.

2. Variables del programa

Se declaran: sumImpar para guardar la suma de impares, num1 y num2 como límites del rango.

3. Ingreso de datos

El usuario ingresa dos números con scanf, que representan el inicio y el final del rango.

4. Ajuste del rango

Se crean n1 = num1 + 1 y n2 = num2 - 1 para trabajar solo con los valores internos del rango.

5. Proceso con while

El ciclo recorre todos los números entre n1 y n2.
Si el número es impar (n1 % 2 != 0), se suma a sumImpar.

6. Resultado final

Se imprime la suma de: números impares del rango + num1 + num2.

Código en C
#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int sumImpar = 0, num1, num2;

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

    int n1 = num1 + 1, n2 = num2 - 1;

    while(n1 <= n2){
        if(n1 % 2 != 0){
            sumImpar += n1;
        }
        n1++;
    }

    printf("%i", sumImpar + num1 + num2);

    return 0;
}

No hay comentarios.:

Publicar un comentario

Convertir horas a minutos 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. ❤️