打印一个字符矩阵
2008-11-19 13:53
225 查看
/*
打印一个 N*N 的方阵,N为每边
字符的个数(3<N<20), 要求最
外一层为"T", 第二层为"J", 从第三层
起每层依次打印数字 1,2,3,...
(下图以N为15为例)
N=15 打印出下面图形
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
*/
void printMatrix(int n)
{
int i = 0, j = 0, indexi = 0, indexj = 0;
char arr[] = {'T','J','1','2','3','4','5','6','7','8'};
if(n < 3)
{
cout << "n must be great than 3" << endl;
return;
}
for(i = 0; i < n;i++)
{
indexi = i;
if(i >= (n >> 1 )) //Here must be not less than
indexi = n - i - 1; //Here must minus 1
for(j = 0; j < n; j++)
{
indexj = j;
if(j >= (n >> 1))//Here must be not less than
indexj = n - j - 1;//Here must minus 1
if(indexj > indexi)
indexj = indexi;
cout << arr[indexj];
}
cout << endl;
}
}
void TestPrintMatrix()
{
int i = 4;
cout << endl;
for(i = 4; i < 20; i++)
{
cout << "N = " << i << endl;
printMatrix(i);
system("pause");
}
}
打印一个 N*N 的方阵,N为每边
字符的个数(3<N<20), 要求最
外一层为"T", 第二层为"J", 从第三层
起每层依次打印数字 1,2,3,...
(下图以N为15为例)
N=15 打印出下面图形
TTTTTTTTTTTTTTT
TJJJJJJJJJJJJJT
TJ11111111111JT
TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
*/
void printMatrix(int n)
{
int i = 0, j = 0, indexi = 0, indexj = 0;
char arr[] = {'T','J','1','2','3','4','5','6','7','8'};
if(n < 3)
{
cout << "n must be great than 3" << endl;
return;
}
for(i = 0; i < n;i++)
{
indexi = i;
if(i >= (n >> 1 )) //Here must be not less than
indexi = n - i - 1; //Here must minus 1
for(j = 0; j < n; j++)
{
indexj = j;
if(j >= (n >> 1))//Here must be not less than
indexj = n - j - 1;//Here must minus 1
if(indexj > indexi)
indexj = indexi;
cout << arr[indexj];
}
cout << endl;
}
}
void TestPrintMatrix()
{
int i = 4;
cout << endl;
for(i = 4; i < 20; i++)
{
cout << "N = " << i << endl;
printMatrix(i);
system("pause");
}
}
相关文章推荐
- 如何打印一个变量指定部分的字符
- C++输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,
- Epic面试题,Spiral打印一个N*N的矩阵
- 《c程序设计语言》读书笔记--每行一个单词打印输入的字符,除去空符
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
- 8.2 习题编写一个程序,在遇到EOF之前,把输入作为字符流读取,程序需要打印每个输入的字符及其相应的ASCLL十进制..........
- java 集合 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
- 输入一个n ,然后在屏幕上打印出NxN 的矩阵!
- 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
- 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
- Word Search 在一个二维字符矩阵里找单词 @LeetCode
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 打印一个字符串中字符的所有组合
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8
- C++如何打印一个字符的地址
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- opencv下如何打印出一个三通道或者二通道矩阵
- 输入一个矩阵,由外向里顺时针打印数字
- 有一个字符串,其中包含中文字符、英文字符和数字、空格及其他字符,请统计和打印出各个字符的个数。