main.cpp

来自「我做的一些C语言练习题,里面一共有76道题目,主要用到一些计算机常用的算法,如:」· C++ 代码 · 共 62 行

CPP
62
字号
/************************************************************************

  3. 打印一个 N*N 的方阵,N为每边           N=15  打印出下面图形
 字符的个数(3<N<20), 要求最               TTTTTTTTTTTTTTT
 外一层为"T", 第二层为"J", 从第三层               TJJJJJJJJJJJJJT
 起每层依次打印数字 1,2,3,...                     TJ11111111111JT
 (右图以N为15为例)                           TJ12222222221JT
                                                  TJ12333333321JT
                                                  TJ12344444321JT
                                                  TJ12345554321JT
                                                  TJ12345654321JT
                                                  TJ12345554321JT
                                                  TJ12344444321JT
                                                  TJ12333333321JT
                                                  TJ12222222221JT
                                                  TJ11111111111JT
                                                  TJJJJJJJJJJJJJT
                                                  TTTTTTTTTTTTTTT

  ***********************************************************************/


#include <stdio.h>

int step(int i, int j, int n)
{
	int k = n/2;
	if(i>k) i = n-i-1;
	if(j>k) j = n-j-1;
	return ((i>=j)?j:i)+1;
}

void print(int n)
{
	int i,j,k;
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			k = step(i,j,n);
			if(k==1)
			{
				printf("T");
			}
			else if(k==2)
			{
				printf("J");
			}
			else
			{
				printf("%d",k-2);
			}
		}
		printf("\n");
	}
}

void main()
{
	print(15);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?