#include<iostream>
using namespace std;
void PrintCircle(int **matrix,int start,int row,int column){
int endX=column-1-start;
int endY=row-1-start;
for(int i=start;i<=endX;i++){
cout<<matrix[start][i]<<' ';
}
if(start<endY){
for(int i=start+1;i<=endY;i++){
cout<<matrix[i][endX]<<' ';
}
}
if(start<endX&&start<endY){
for(int i=endX-1;i>=start;i--){
cout<<matrix[endY][i]<<' ';
}
}
if(start<endY-1&&start<endX){
for(int i=endY-1;i>=start+1;i--){
cout<<matrix[i][start]<<' ';
}
}
}
void PrintMatrix(int **matrix,int row,int column){
if(matrix==NULL||row<=0||column<=0)
return;
int start=0;
while(row>2*start&&column>2*start){
PrintCircle(matrix,start,row,column);
start++;
}
}
void main(){
int **p=new int*[3];
/*for(int i=0;i<3;i++){
p[i]=new int[4];
}*/
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//二维数组的地址名为首行数组的首地址
for(int i=0;i<3;i++){
p[i]=a[i];
}
PrintMatrix(p,3,4);
system("pause");
delete p;
p=NULL;
}
螺旋矩阵2——顺时针打印任意大小的矩阵
最新推荐文章于 2022-05-10 19:02:12 发布