最近园里面在聊打印螺旋数组,我业余写了一个自己的实现,如下:
代码
static
void
Main(
string
[] args) {
int
n
=
0
;
try
{ n
=
Convert.ToInt32(Console.ReadLine()); }
catch
{ Console.WriteLine(
"
Error
"
); }
int
[,] arr
=
new
int
[n, n]; Spiral(n, arr); PrintMatrix(n, arr); Console.ReadLine(); }
//
螺旋数组
public
static
void
Spiral(
int
n,
int
[,] matrix) {
int
i
=
0
, j
=
0
, m
=
0
, k
=
0
;
for
(m
=
0
; m
<
n; m
++
) {
//
方向→
for
(i
=
m, j
=
m; j
<
n
-
m; j
++
) { matrix[i, j]
=
++
k; } j
--
;
//
方向↓
for
(i
=
i
+
1
; i
<
n
-
m; i
++
) { matrix[i, j]
=
++
k; } i
--
;
//
方向←
for
(j
=
j
-
1
; j
>=
m; j
--
) { matrix[i, j]
=
++
k; } j
++
;
//
方向↑
for
(i
=
i
-
1
; i
>
m; i
--
) { matrix[i, j]
=
++
k; } i
++
; } }
//
打印
public
static
void
PrintMatrix(
int
n,
int
[,] matrix) {
for
(
int
a
=
0
; a
<
n; a
++
) {
for
(
int
b
=
0
; b
<
n; b
++
) {
if
(matrix[a, b]
<
10
) { Console.Write(
"
0{0}
"
, matrix[a, b]); }
else
{ Console.Write(
"
{0}
"
, matrix[a, b]); } } Console.WriteLine(); } }
转载于:https://www.cnblogs.com/Kurodo/archive/2010/03/18/1688586.html