/**
 * @file funciones.h
 * @author Julian
 * @brief funciones del programa
 * @version 0.1
 * @date 2025-03-26
 * 
 */

#ifndef FUNCIONES_H
#define FUNCIONES_H

/**
 * @brief Reserva memoria en una matriz por filas,
 * 
 * @param nFil Numero de filas.
 * @param nCol Numero de columnas.
 * @return matriz 
 */
    int **reservarMemoria(int nFil, int nCol);

/**
 * @brief Rellena la matriz con datos aleatorios entre 0 y 20
 * 
 * @param matriz Matriz por referencia
 * @param nFil Numero de filas.
 * @param nCol Numero de columnas.
 */
    void rellenarMatriz(int **matriz, int nFil, int nCol);

/**
 * @brief Imprime la matriz.
 * 
 * @param matriz Matriz por referencia
 * @param nFil Numero de filas.
 * @param nCol Numero de columnas.
 */
    void imprimirMatriz(int **matriz, int nFil, int nCol);

/**
 * @fn imprimirMatriz
 * @brief Devuelve un vector dinamico con los minimos de cada columna 
 * 
 * @param matriz Matriz por referencia
 * @param nFil Numero de filas.
 * @param nCol Numero de columnas.
 * @return Vector con menores de columnas.
 */
    int *minCol(int **matriz, int nFil, int nCol);
 
/**
 * @brief Devuelve un vector dinamico con los minimos de cada columna 
 * 
 * @param matriz Matriz por referencia
 * @param nFil Numero de filas.
 * @param nCol Numero de columnas.
 * @return Vector con menores de columnas.
 */
    void liberarMemoria(int ***matriz, int nFil);
#endif 