输入3,在屏幕输出如下矩阵
 1  2  3 
 8  9  4 
 7  6  5 
 输入4,在屏幕输出如下矩阵
 1   2   3   4
 12  13  14  5  
 11  16  15  6 
 10  9   8   7
 编写程序输出按n时的矩阵因为本人只学到了继承与多态,所以希望有人能用这之前的知识帮忙解答,如果实在不行,
用后面的知识也行,不过希望能有注释~
谢谢~!

解决方案 »

  1.   


    private static int iRow = 4;//行数
            private static int iCol = 5;//列数
            private string[,] arrStr = new string[iRow, iCol];
            public Form1()//构造函数
            {
                InitializeComponent();
                for (int i = 0; i < iRow; i++)
                {
                    for (int j = 0; j < iCol; j++)
                    {
                        arrStr[i, j] = i.ToString() + j.ToString();
                        richTextBox1.AppendText(arrStr[i, j] + "  ");
                    }
                    richTextBox1.AppendText("\r\n");
                }           
            }        private void button1_Click(object sender, EventArgs e)//旋转矩阵
            {
                for (int i = 0; i < iCol; i++)
                {
                    for (int j = 0; j < iRow; j++)
                    {
                        richTextBox2.AppendText(arrStr[j, i] + "  ");
                    }
                    richTextBox2.AppendText("\r\n");
                }
            }
      

  2.   

    http://topic.csdn.net/u/20111007/10/b17f2e59-50d2-4997-9d63-4780ea94262a.html
      

  3.   

    这里是一个demo,懒得去找公式,所以也就只好去实际去填数字。using System;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var n = 10;
                var m = new int[n, n];
                填充一周(0, 1, m);
                for (var i = 0; i < n; i++)
                {
                    for (var j = 0; j < n; j++)
                        Console.Write("{0,4}", m[i, j]);
                    Console.WriteLine();
                }
                Console.ReadLine();
            }        private static void 填充一周(int start, int num, int[,] m)
            {
                var len = m.GetLength(0);
                var max = len - start - 1;
                for (var j = start; j < len - start; j++)
                    m[start, j] = num++;
                for (var i = start + 1; i < max; i++)
                    m[i, max] = num++;
                for (var j = max; j > start; j--)
                    m[max, j] = num++;
                for (var i = max; i > start; i--)
                    m[i, start] = num++;
                start++;
                if (start + start < len)
                    填充一周(start, num, m);
            }
        }
    }