using System;

namespace Cadenas
{
  class Program
  {
    public static void Main(string[] args)
    {
      int nFilas = 0, fila = 0;

      // nFilas: número de filas de la matriz nombre
      // fila: índice 0, 1, 2... de la fila accedida
      do
      {
        Console.Write("Número de filas de la matriz:  ");
        nFilas = Convert.ToInt32(Console.ReadLine());
        // no permitir un valor cero o negativo
      }
      while (nFilas < 1);

      // Matriz "nombre" de cadenas de caracteres
      string[] nombre = new string[nFilas];

      Console.WriteLine("Escriba los nombres que desea introducir.");
      Console.WriteLine("Puede finalizar pulsando las teclas [Ctrl][z].");
      for (fila = 0; fila < nFilas; fila++)
      {
        Console.Write("Nombre[" + fila + "]: ");
        // Leer una cadena y almacenarla en nombre[fila]
        nombre[fila] = Console.ReadLine();
        // Si se pulsó [Ctrl][z], salir del bucle
        if (nombre[fila] == null) break;
      }
      Console.WriteLine();
      nFilas = fila; // número de filas leídas

      // Ordenar las cadenas de caracteres alfabéticamente
      Array.Sort(nombre, 0, nFilas);
      // Permitir mostrar las cadenas de caracteres
      char respuesta = '\0';
      do
      {
        Console.Write("¿Desea mostrar la lista? s/n (sí o no) ");
        respuesta = (char)Console.Read();
        Console.ReadLine(); // limpiar caracteres sobrantes
      }
      while (respuesta != 's' & respuesta != 'n');
      if (respuesta == 's')
      {
        // Visualizar la lista de nombres
        Console.WriteLine();
        for (fila = 0; fila < nFilas; fila++)
        {
          Console.WriteLine(nombre[fila]);
        }
      }
      
      Console.Write("Pulse una tecla para continuar...");
      Console.ReadKey(true);
    }
  }
}
