【问题标题】:Custome Size 2D Array with Fitting For Loops带有适合循环的自定义大小二维数组
【发布时间】:2020-06-20 16:12:53
【问题描述】:

我正在创建一个可以具有任何自定义大小1x1, 2x2, 3x3 .... nxn 的二维数组,并且根据数组的大小,它会填充0(n^2)-1,所以如果它是2x2,它会输出:

3 2 
1 0

应该是这样的int[,] arr = new int [n, n];,来创建二维数组,但是如何构造for循环呢?

我尝试过的

using System;

namespace moveElement {
  public class move {
    static void Main(string[] args) {
      int n = 3;
      int[, ] arr = new int[n, n];

      for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
          Console.Write(arr[i, j] + " ");
        }

        Console.WriteLine();
      }
    }

  }
}

代码结果:

0 0 0
0 0 0
0 0 0

【问题讨论】:

标签: c# arrays for-loop multidimensional-array


【解决方案1】:
int k  = 0;
for(int i=0;i<n;i++)
{
   for(int j=0;j<n;j++)
   {
      arr[i,j] = k++;
   }
}

【讨论】:

  • 或者int k = n * n - 1k--
  • @zellez 你得到了你想要的——数组充满了数字(尽管颠倒了)。然而,正如我和 Ivan 所看到的,显示数组是一件您已经可以自己做的事情。
【解决方案2】:

问题的完整代码:

using System;

namespace moveElement
{
    public class move
    {
        static void Main(string[] args)
        {
            int n = 3;
            int[,] arr = new int [n, n];

//Ivan Smyrnov solution


            int k = (n * n) - 1;
                    for(int i=0;i<n;i++)
                        {
                        for(int j=0;j<n;j++)
                            {
                                 arr[i,j] = k--;
                                                    }
                                                        }
//Ivan Smyrnov solution 


                    for (int i = 0; i < n; i++)
                    {
                        for (int j = 0; j < n; j++)
                        {
                            Console.Write(arr[i, j] + " ");
                        }

                        Console.WriteLine();
                    }
            }

        }
    }

n3 时的输出:

8 7 6 
5 4 3 
2 1 0 

【讨论】:

    猜你喜欢
    • 2011-03-02
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多