using System;
using LeerDato;
namespace Temperaturas
{
  class Program
  {
    public static void MinMax(int dias, double[] tmes,
                         ref double min, ref double max)
    {
      min = tmes[1]; // temperatura mínima
      max = tmes[1]; // temperatura máxima
      for (int d = 1; d <= dias; d++)
      {
        // Calcular las temperaturas mínima y máxima
        if (tmes[d] < min) min = tmes[d];
        if (tmes[d] > max) max = tmes[d];
      }
    }

    public static void Main(string[] args)
    {
      int[] dias_mes = {0, 31, 28, 31, 30, 31, 30, 31,
                           31, 30, 31, 30, 31};
      double[,] temperatura = new double[13,32];
      int m = 0, d = 0;

      // Introducir las temperaturas. Las calculamos
      // de forma aleatoria.
      Random rnd = new Random();
      for (m = 1; m <= 12; m++)
      {
        for (d = 1; d <= dias_mes[m]; d++)
        {
          temperatura[m,d] = rnd.NextDouble() * 40;
        }
      }
      
      // Para un determinado mes, mostrar las temperaturas.
      // su mínima y su máxima
      do
      {
        Console.Write("Temperaturas del mes: ");
        Leer.DatoInt(ref m);
      } 
      while (m < 1 | m > 12);
      // Mostrar las temperaturas del mes m
      double[] tmes = new double[32];
      for (d = 1; d <= dias_mes[m]; d++)
      {
        Console.WriteLine("Día {0,2:D}: {1,5:F2} grados", d, temperatura[m, d]);
        // Copiar las temperaturas para pasarlas al
        // método MinMax
        tmes[d] = temperatura[m, d];
      }
      
      // Calcular la temperatura mínima y máxima del mes m
      double tmin = 0, tmax = 0;
      MinMax(dias_mes[m], tmes, ref tmin, ref tmax);
      // Mostrar temperaturas mínima y máxima
      Console.Write("T. Min: {0,5:F2}\n", tmin);
      Console.Write("T. Máx: {0,5:F2}\n", tmax);
      
      Console.Write("Pulse una tecla para continuar...");
      Console.ReadKey(true);
    }
  }
}
