質問: お疲れ様です。今C言語の勉強中なんですが、課題を出したところ実装が仕様にあってないので修正してくださいという指摘をされました。
回答: 「どちらかの値が0以下のときは何も表示しない」を満たしていないのかもしれません。 縦に0以上、横に0以下の値を入れると、改行(\n)がたての値の回数表示されてしまいます。(改行を表示というかはなんとも言えませんが、改行だけするのも明らかにおかしいのでそういうことだと思います。) squareの仕様なので、現在のsquare関数の処理を // heightとwidthが0より大きいときのみ■を表示 if (0 < heigth && 0 < width){} の中に入れると仕様は満たせると思います。