码迷,mamicode.com
首页 > 其他好文 > 详细

打印一个N*N的方阵,从最外层到最里层每层一个字符

时间:2015-10-02 12:31:40      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

/*打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),要求最外层为“X”,第二层为“Y”,从第三层起每层依次打印数字0,1,2,3,... 
例子:当N =5,打印出下面的图形: 
X X X X X 
X Y Y Y X 
X Y 0 Y X 
X Y Y Y X 
X X X X X 
*/


1
// TESTC.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <string>//当要使用string类是要引用的文件 6 #include <iostream> 7 #include <stdio.h> 8 9 using namespace std; //c++工程时,此语句必不可少,否则有的编译器无法识别 10 11 int _tmain(int argc, _TCHAR* argv[]) 12 { 13 int n=25; 14 int i=0,j=0,k=0; 15 16 while(1) 17 { 18 cin>>n; 19 20 char **p; 21 p=new char*[n]; 22 23 for(i=0;i<n;i++) 24 p[i]=new char[n]; 25 26 for(int k=n/2+n%2-1;k>=0;k--)//从零开始的话会被覆盖掉,必须反着来 27 for(int i=0;i<n;i++) 28 { 29 for(int j=0;j<n;j++) 30 { 31 if(k==0&&(i==k||j==k||i==n-k-1||j==n-k-1))p[i][j]=x; 32 else if(k==1&&(i==k||j==k||i==n-k-1||j==n-k-1))p[i][j]=y; 33 else if(i==k||j==k||i==n-k-1||j==n-k-1) p[i][j]=k-2+0; 34 } 35 36 } 37 for(int i=0;i<n;i++) 38 { 39 for(int j=0;j<n;j++) 40 { 41 42 printf("%c ",p[i][j]); 43 } 44 printf("\n"); 45 } 46 } 47 48 return 0; 49 }

 

打印一个N*N的方阵,从最外层到最里层每层一个字符

标签:

原文地址:http://www.cnblogs.com/huangmp/p/4852042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!