Ya hay respuestas con soluciones pero, me llamó la atención el problema y lo hice yo también xD
Te lo dejo porque me parece algo más claro por tener menos if's.
Espero sirva. Saludos.
Código (cpp) [Seleccionar]
#include<iostream>
using namespace std;
int main(void){
int lado, cont;
cin>>lado;
cont = 0;
if(lado>0){
cout<<"*";
for(int i=1;i<lado;i++){
cout<<" *";
cont+=2;
}
cout<<endl;
cont--;
for(int i=0;i<lado-1;i++){
cout<<"*";
for(int j=0;j<cont;j++)
cout<<" ";
cout<<"*"<<endl;
}
cout<<"*";
for(int i=1;i<lado;i++)
cout<<" *";
cout<<endl;
}
}
Te lo dejo porque me parece algo más claro por tener menos if's.
Espero sirva. Saludos.