首页 > 其他 > 详细

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

时间:2015-10-02 12:31:37      阅读:160      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!