c++方阵题目

来源:百度知道 编辑:UC知道 时间:2024/06/12 06:39:36
打印一个n*n的方阵,n为每边字符的个数(3<n<20),要求最外一层为"I",第二层为"J",从第3层起每层依次打印1.2.3....
例如n=15,

TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12
T

TTTTTTTTTTTTTTT
如这样,应该大家能明白吧....
最好后面能有解释
写的好再加分./
Laplas的 是我想要的答案
还有那个n是自己输的,不是直接就好的
还有各位大大,可以帮忙解析下嘛
好难看懂啊

TTTTTTTTTTTTT
TJJJJJJJJJJJJT
TJ111111111JT
TJ122222221JT
TJ123333321JT
TJ123444321JT
TJ123454321JT
TJ123444321JT
TJ123333321JT
TJ122222221JT
TJ111111111JT
TJJJJJJJJJJJJT
TTTTTTTTTTTTT

// 要打其他尺寸的就改N

#include "stdio.h"
#include "math.h"

const long N = 15;
const char strData[] = "TJ123456789";
int main(int argc, char* argv[])
{
long m = N/2;
long i,j;
for (j=0; j<N; j++)
{
for (i=0; i<N; i++)
{
long k1 = abs(j-m);
long k2 = abs(i-m);
long k = k1>k2? k1:k2;
printf("%c", strData[m-1-k]);
}
printf("\n");
}
return 0;
}

TTTTTTTTTTTTT

TJJJJJJJJJJJT

TJ111111111JT

TJ122222221JT

TJ123333321JT

TJ123444321JT

TJ123454321JT

TJ123444321JT

TJ123333321JT

TJ122222221JT

TJ111111111JT

TJJJJJJJJJJJT

TTTTTTTTTTTTT

Press any key to continue

占个位子!200分我写!

不明白到底什么意思

//楼上的算法非常好。
#include<iostream>
#inclu