代码思路:先打印出a行a列的星号,然后删去4个边角;左上方删去星号的位置行列之和小于a/2,右上角及左下角位置为行列之差小于a/2,右下角的星号位置行列之和大于a+a/2;在这些位置打印空格字符。
输入的a表示行数应为正的奇数,用puts或printf在第二个循环里输出换行字符用来控制换行。
int i, j, a;
scanf("%d",&a);
for (i = 0; i < a; ++i)
{
for (j = 0; j < a; ++j)
if (i + j<a / 2 || j - i>a / 2 || i - j > a / 2 || i + j >= a / 2 + a)
{
putchar(' ');
}
else
putchar('*');
puts("");
}