X形图案(思路/思维)-CSDN博客

64 阅读1分钟
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:

针对每行输入,输出用“*”组成的X形图案。
示例1
输入:

5

输出:

*   *
 * * 
  *  
 * * 
*   *

示例2
输入:

6

输出:

*    *
 *  * 
  **  
  **  
 *  * 
*    *

本来该题应该是作为简单题而不会在这里出现的,但是既然在这里出现了,就有它存在的价值

首先,像这种输出一个图案(或者说找规律)的题目我们最最通常能够想到的思路就是使用嵌套循环来解决,然鹅本题不同,我在一开始做这道题的时候的想法也是想使用嵌套循环,然而思来想去也无法实现!!!

最后看了题解才发现另外一种思路,相信有做过矩阵输出类似题目的同学看到这个思路会豁然开朗

————我们将每个图案都看作一个矩阵,X形图案可以拆分成两根斜线,其中i==j时输出星号,或者i==n-i-1时输出星号即可,其他情况皆输出空格

#include<stdio.h>
int main()
{
	char ch[25][25],i,j,n;
	while(scanf("%d",&n)!=EOF)
	{
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(i==j||i+j==n+1)
			{
				printf("*");
			}
			else
			{
				printf(" ");
			}
		}
		printf("\n");
	}		
	}

	return 0;
}

未来在做到这类题目“卡顿”的时候,也可以试试这种思路!!!!!!!!!!!!!!!!!!