
#include
<
cstdio
>
void MatrixSpiralOutput( int n)
{
int ** matrix = new int * [n]();
for ( int idx = 0 ; idx < n; idx ++ )
{
matrix[idx] = new int [n]();
}
int row = 0 , col = 0 ;
int i = 0 ;
int len = n * n;
int circle = 0 ;
while (i < len)
{
for ( ;row < n - circle; row ++ )
matrix[row][col] = ++ i;
row -- ;
col ++ ;
for ( ; col < n - circle; col ++ )
matrix[row][col] = ++ i;
row -- ;
col -- ;
for ( ; row >= circle; row -- )
matrix[row][col] = ++ i;
row ++ ;
col -- ;
for ( ;col > circle; col -- )
matrix[row][col] = ++ i;
row ++ ;
col ++ ;
circle ++ ;
}
printf( " The Array matrix[%d][%d] is : " , n, n);
for ( int k = 0 ; k < n; k ++ )
{
printf( " " );
for ( int j = 0 ; j < n; j ++ )
printf( " %-5d " , matrix[k][j]);
}
printf( " " );
for ( int idx = 0 ; idx < n ; idx ++ )
delete [] matrix[idx];
delete [] matrix;
}
void MatrixSpiralOutput( int n)
{
int ** matrix = new int * [n]();
for ( int idx = 0 ; idx < n; idx ++ )
{
matrix[idx] = new int [n]();
}
int row = 0 , col = 0 ;
int i = 0 ;
int len = n * n;
int circle = 0 ;
while (i < len)
{
for ( ;row < n - circle; row ++ )
matrix[row][col] = ++ i;
row -- ;
col ++ ;
for ( ; col < n - circle; col ++ )
matrix[row][col] = ++ i;
row -- ;
col -- ;
for ( ; row >= circle; row -- )
matrix[row][col] = ++ i;
row ++ ;
col -- ;
for ( ;col > circle; col -- )
matrix[row][col] = ++ i;
row ++ ;
col ++ ;
circle ++ ;
}
printf( " The Array matrix[%d][%d] is : " , n, n);
for ( int k = 0 ; k < n; k ++ )
{
printf( " " );
for ( int j = 0 ; j < n; j ++ )
printf( " %-5d " , matrix[k][j]);
}
printf( " " );
for ( int idx = 0 ; idx < n ; idx ++ )
delete [] matrix[idx];
delete [] matrix;
}