方阵

题目:输入一个奇数n,打印出n行n列的方阵,要求同行同列同对角线相加都相等。

列如:输入3,打印出下列方阵

      8 1 6

                3 5 7

                4 9 2

代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 namespace Test2
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             int n;
12             Console.WriteLine("请?输º?入¨?一°?个?奇?数ºy:êo");
13             n = Convert.ToInt32(Console.ReadLine());
14             //判断n维数组的奇偶性
15             if (n % 2 == 0)
16             {
17                 Console.WriteLine("输入有误,请输入一个正奇数");
18                 n = Convert.ToInt32(Console.ReadLine());
19             }
20             
21             int[,] a = new int[n, n]; //定义一个n*n阶的二维数组
22                 //将每个宫格的数据都赋值为0
23                 for (int a1 = 0; a1 < n; a1++)
24                     for (int a2 = 0; a2 < n; a2++)
25                     {
26                         a[a1, a2] = 0;
27                     }
28                 //将第一行,中间一列的空赋值为1
29                 a[0, n / 2] = 1;
30                 int b1 = 0, b2 = n / 2;
31                 //像宫格中填数,规则是右边一列,下面2行为下一个数出现的位置。
32                 for (int b3 = 2; b3 <= n * n; b3++)
33                 {
34                     //0代表宫格中没有填充,所以判断下一个要填充的位置是否0                 if (a[(b1 + 2) % n, (b2 + 1) % n] == 0)
35                     {
36                         a[(b1 + 2) % n, (b2 + 1) % n] = b3;
37                         b1 = (b1 + 2) % n;
38                         b2 = (b2 + 1) % n;
39                     }
40                     else
41                     {
42                         a[(b1 + 1) % n, b2 % n] = b3;
43                         b1 = (b1 + 1) % n;
44                     }
45                 }
46                 //打印出填好数的数组
47                 for (int a1 = 0; a1 < n; a1++)
48                 {
49                     for (int a2 = 0; a2 < n; a2++)
50                     {
51                         Console.Write(a[a1, a2] + "	");
52                     }
53                     Console.WriteLine();
54                 }
55             Console.Read();
56         }
57     }
58 }
原文地址:https://www.cnblogs.com/lixiaokang-blog/p/7610636.html