控制台打印螺旋数组
最近园里面在聊打印螺旋数组,我业余写了一个自己的实现,如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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();
}
}
{
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();
}
}
作者:Kurodo
出处:http://Kurodo.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://Kurodo.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。