您的位置:首页 > 其它

螺旋矩阵

2018-01-07 19:40 232 查看
题目:从控制台打印出螺旋矩阵

例:1   2   3   4

      12 13 14 5

      11 16 15 6

      10  9   8  7

程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 螺旋矩阵
{
class Program
{
static void Main(string[] args)
{
int n;
Console.Write("请输入一个大于等于3的整数:");
n = Convert.ToInt32(Console.ReadLine());
int[,] a=new int[n,n];
int i, j, count=1;      //i记一个螺旋矩阵有几个回
//填充螺旋矩阵
for (i = 0; i < n / 2; i++)
{
//打印矩阵的上边(行不变,列递增到n-i-1列)
for (j = i; j < n - i - 1; j++)
{
a[i, j] = count++;
}
//打印矩阵的右边(列为n-i-1不变,行递增)
for (j = i; j < n - i - 1; j++)
{
a[j, n - i - 1] = count++;
}
//打印矩阵的下边(行不变,从n-i-1递减)
for (j = n - i - 1; j > i; j--)
{
a[n - i - 1, j] = count++;
}
//打印矩阵的左边(列不变,行从n-i-1递减)
for (j = n - i - 1; j > i; j--)
{
a[j, i] = count++;
}

}

if (n % 2 == 1)
{
a[n / 2, n / 2] = n * n;
}

//打印出螺旋矩阵
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
Console.Write(a[i, j]+"\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: