#include <stdio.h>
#include <time.h>

// Función que implementa el algoritmo de inserción del archivo 02-2Insercion.pdf
void insercion(int array[], int tam) {
    int i, j, aux;
    for (i = 1; i < tam; i++) {
        aux = array[i];
        j = i - 1;
        while ((j >= 0) && (aux < array[j])) {
            array[j + 1] = array[j];
            j--;
        }
        array[j + 1] = aux;
    }
}

// Función para imprimir la fecha y hora de ejecución
void imprimirFechaHora() {
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    printf("Fecha y hora de ejecucion: %02d/%02d/%04d %02d:%02d:%02d\n", 
           tm.tm_mday, tm.tm_mon + 1, tm.tm_year + 1900, 
           tm.tm_hour, tm.tm_min, tm.tm_sec);
}

int main() {
    int n, i;

    // 1. Datos del estudiante y fecha/hora
    printf("===================================================\n");
    printf("Estudiante: Gema Donaji Davila Jimenez\n");
    printf("Codigo de estudiante: 303565483\n");
    imprimirFechaHora();
    printf("===================================================\n\n");

    // 2. Solicitar y validar la cantidad de elementos (entre 12 y 18)
    do {
        printf("Ingrese la cantidad de numeros a ordenar (entre 12 y 18): ");
        scanf("%d", &n);
        if (n < 12 || n > 18) {
            printf("Error: Debe ingresar un valor dentro del rango [12 - 18]. Intente de nuevo.\n\n");
        }
    } while (n < 12 || n > 18);

    int numeros[n];

    // 3. Captura de los valores desde el teclado
    printf("\nIngresa los %d numeros enteros:\n", n);
    for (i = 0; i < n; i++) {
        printf("Numero %d: ", i + 1);
        scanf("%d", &numeros[i]);
    }

    // 4. Desplegar valores iniciales
    printf("\n---------------------------------------------------");
    printf("\nValores iniciales (Desordenados):\n");
    for (i = 0; i < n; i++) {
        printf("%d ", numeros[i]);
    }
    printf("\n---------------------------------------------------\n");

    // 5. Llamada a la función de ordenamiento por inserción
    insercion(numeros, n);

    // 6. Desplegar valores resultantes
    printf("\nValores resultantes (Ordenados de menor a mayor):\n");
    for (i = 0; i < n; i++) {
        printf("%d ", numeros[i]);
    }
    printf("\n===================================================\n");

    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: