分析:
图案题目主要就是找规律,如何找规律呢,基本上最容易找出规律的方法就是画图加行列数构成一个表格
如图(以n=5为例):
这下子找规律是不是就很明显了?
左边的斜线对应的*坐标分别是(0,0)(1,1)(2,2)(3,3)(4,4)
右边的斜线对应的*坐标分别是(0,4)(1,3)(2,2)(3,1)(4,0)
很明显左边斜线的规律是行列数相等就打印*? ? ,右边斜线的规律是行加列等于4(也就是n-1)就打印*
规律找到后就可以开始写代码了
答案:
#include <stdio.h>
int main()
{
int n = 0, i = 0, j = 0;
while (scanf("%d", &n) != EOF) //多组输入
{
if (n >= 2 && n <= 20) //使输入符合题目范围
{
for (i = 0; i < n; i++) //打印a行
{
for (j = 0; j < n; j++) //打印a列
{
if (i == j || i + j == n - 1) //打印*的规律
{
printf("*"); //打印*
}
else //不符合打印*的规律
{
printf(" "); //打印空格
}
}
printf("\n"); //打完一行后换行
}
}
}
return 0;
}