牛客网BC110—X型图案

题目:

思路:

之前做这种图形题,比如PTA上的打印菱形,先打印空格,然后再打印字符(空格和字符的个数找规律实现),我刚开始也用这种思路去做,发现很难做。

所以换另一个思路,可以先想象这是一个由*组成的正方形,然后我们从这个正方形里面选择性的打印*组成一个X型。

在写代码时发现我们根本不用初始化,也是寻找规律,先想象一个没有任何初始化的二维数组,然后当横纵坐标相等或者相加是n-1时,我们就打印*,其余就打印空格!

源码:

int main()
{
	int n = 0;
	//char arr[21][21] = { '*' };
	//根本不需要初始化
	while (scanf("%d", &n) != EOF)
	{
		for (int i=0;i<n;i++)
		{
			for (int j=0;j<n;j++)
			{
				if ((i == j) || (i + j == n-1))
					printf("*");
				else
					printf(" ");
			}
			printf("\n");
		}
	}
	return 0;
}

灵魂总结:

以后再遇到这种打印图形的问题,我们可以有两种思路。

第一种就是一行一行的打印,去寻找行数和字符/空格之间的关系

第二种就是想象一个没有任何初始化的二维数组,也是经过寻找规律去自己赋值打印

猜你喜欢

转载自blog.csdn.net/hanwangyyds/article/details/131516627