??
Na, du bist der Experte, nicht ich.
Allerdings haben Breite und Höhe in deinen drei Beispielen den gleichen Wert… 
Probiere dies aus; hier ist in setup() Höhe ungleich Breite:
void setup() {
  // Höhe, Breite, z, s 
  kreuz(5, 15, 2, 2);
  println();
}
void kreuz(int h, int b, int z, int s)
{
  for (int zeile = 0; zeile < b; zeile++)
  {
    for (int spalte = 0; spalte < h; spalte++)
    {
      {
        if (spalte == z +1 || spalte == s+1 )
        {
          print("#");
        } else
        {
          print(".");
        }
      }
    }
    println();
  }
}
