# Introducción a los problemas

Este es el primer problema de la secuencia y además explica cómo trabajar con los archivos provistos. Si su ambiente de desarrollo lo provee, conviene usar la "Vista previa" para leer este archivo `readme.md` de forma más cómoda. Un problema consta de: un enunciado, una solución, y casos de prueba.

El **enunciado** es un texto que describe el contexto del problema y lo que la solución debe realizar. Está siempre en el archivo `readme.md`. Además, provee al menos un ejemplo de los datos que el programa va a recibir y de la salida que se espera genere. El siguiente es el enunciado de este problema a resolver.

> ## El más grande de la lista
>
> Escriba un programa que reciba una lista de números en la entrada estándar e imprima el número más grande de la lista. Los números pueden tener decimales, exponentes, ser positivos o negativos.
>
> Ejemplo de entrada:
>
>     100
>     -150
>     0.15
>
> Ejemplo de salida
>
>     100

Tras leer el enunciado, usted escribe una **solución** en algún lenguaje de programación. Aquí vamos a usar C. Abra el archivo `solution.c`, el cual viene con algún código fuente inicial. Este código ha de modificarse para poder resolver el problema.

Cada vez que quiera probar su solución, utilice el `Makefile`. Si no tiene una terminal activa, cargue una del sistema operativo o de su ambiente de desarrollo. Si no lo está ya, diríjase a la carpeta del problema. Emita el comando `make test`, el cual compilará su solución y la correrá contra todos los *casos de prueba* definidos en el problema.

Un **caso de prueba** es una pareja de archivos: uno de *entrada* y otro de *salida esperada*. Cuando su programa corre, el `Makefile` le enviará por *entrada estándar* (`stdin`) el contenido del archivo de entrada. La salida que su programa genere (`stdout`), es capturada y comparada contra la *salida esperada* del caso de prueba. Si estas coinciden, su solución pasa el caso de prueba. De lo contrario, verá en la terminal una impresión del texto donde las salidas difieren.

La meta es lograr que su solución resuelva el problema, y en consecuencia, pase todos los casos de prueba. Adelante! Modifique el código dado en el archivo `solution.c` para que encuentre el número más grande de la entrada.

**Nota**: Recuerde usar los *Sanitizers* para incrementar la calidad de su código (ej.: `make clean asan test`).

**Importante**: Una vez que finalice el problema (sea que lo resuelva o no), realice un *commit* con un mensaje afín, por ejemplo: `Tarea05: problema 1 avance` (puede describir de qué se trata el avance) o `Tarea05: problema 1 resuelto`.
