- 打印一个 N*N 的方阵,N为每边 字符的个数(3<N<20), 要求最外一层为"T", 第二层为"J", 从第三层起每层依次打印数字 1,2,3,… (右图以N为为例) N=15 打印出下面图形
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n = 15;
int head = 0, tail = n - 1;
int i = head, j = head;
static char showMatrix[15][15];
char str[] = "TJ123456789";
char tempChar;
for (int k = 0; k <= n/2; k++)
{
tempChar = *(str + k);
for (i = head; i < tail; i++)
{
showMatrix[i][j] = tempChar;
}
for (j = head; j < tail; j++)
{
showMatrix[i][j] = tempChar;
}
for (i = tail; i > head; i--)
{
showMatrix[i][j] = tempChar;
}
for (j = tail; j > head; j--)
{
showMatrix[i][j] = tempChar;
}
if (head == tail)
{
showMatrix[head][tail] = tempChar;
}
head++;
tail--;
i = head;
j = head;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << showMatrix[i][j];
}
cout << endl;
}
system("pause");
return 0;
}