c语言打印空白星号矩形
用户输入一个数字N,输出一个N*N的空心矩形,N最小为3
效果如下:
思路是这样的,首先拿到这道题是没有思路的,但我们可以举几个例子,当N等于3的情况,当N=5的情况,发现第一行和最后一行是相同的,而第2行到第N-2行也是相同的。先用一个循环控制输出的是哪一行,然后里层循环控制每行的字符应该是什么? 因为每行的字符有的时候需要输出空格有的时候需要输出星号,所以需要做一些判断,如果是要输出的字符位置是
每行的第一个或者最后一个,那么就输出星号,否则输出空格,没输出一行再输出一个换行。
int main() { int N = 5; for (int hang = 1; hang <= N; hang++) { if (hang == 1 || hang == N) { for (int index = 1; index <= N; index++) { printf("*"); } printf("\n"); } if (hang >= 2 && hang <= N - 1) { for (int index=1; index <= N; index++) { if (index == 1 || index == N) { printf("*"); } else { printf(" "); } } printf("\n"); } }