/*************************************************************
  esStampaQuadrato.cpp

  Scrivere un programma che
  1- chiede in ingresso un numero naturale n
  2- stampa un quadrato nxn di asterischi
  3- stampa un quadrato nxn vuoto di asterischi

  L'output deve essere del tipo:
  Base quadrato? 3
  Stampo quadrato di base 3

  * * *
  * * *
  * * *

  Stampo quadrato vuoto di base 3

  * * *
  *   *
  * * *

*******************************************************/

#include <iostream>
using namespace std;

int main() {
  
  int n;
  cout<<"Inserisci n: ";
  cin>>n;

  // prima parte 
  cout << "Stampo quadrato di lato " << n << endl;
  int i = 0;
  while (i < n) {
    int j = 0;
    while (j < n) {
      cout << "* ";
      j= j + 1;
    }
    cout << endl;
    i = i + 1;
  }

  // seconda parte
  cout << "Stampo quadrato vuoto di lato " << n << endl;
  i = 0;
  while (i < n) {
    int j = 0;
    while (j < n) {
      if ((i==0) || (i==n-1))
        cout << "* ";
      else{
        if ((j==0) || (j==n-1))
           cout << "* ";
        else 
           cout << "  ";
      }
      j = j + 1;
    }
    cout << endl;
    i = i + 1;
  }
  return 0;
}