【问题标题】:Using method 2 dimensional array?使用方法二维数组?
【发布时间】:2014-05-23 12:41:58
【问题描述】:

在 (private int >>>TotArray

这段代码的作用是把这个二维数组的所有数字相加。 但此刻它什么也没做。

    int[,] A = new int[3, 4] 
    { 
        { 4, -5, 12, -2},
        { -9, 15, 19, 6},
        { 18, -33, -1, 7}
    };
    public Form1()
    {
        InitializeComponent();
    }
    private int TotArray(int[,] array)//<<<<<< error
    {
        int sum = 0;
        int rows = array.GetLength(0);
        int cols = array.GetLength(1);

        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                sum += array[i, j];
            }
        }
        richTextBox1.Text = ("The sum of the array is " + sum.ToString() + ".");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        TotArray(A);
    }

【问题讨论】:

    标签: c# arrays methods multidimensional-array


    【解决方案1】:

    我认为您遇到了错误,因为您的 TotArray 方法实际上并未返回 int。

    如果您将其切换到以下内容会发生什么:

    private void TotArray(int[,] array) 
    

    如果这不能解决问题,您可以发布错误消息吗?

    【讨论】:

      【解决方案2】:

      您的返回类型是int,但您没有从您的方法返回任何内容。如果您不想返回任何内容,请将返回类型更改为voidreturn

      private int TotArray(int[,] array)
      {
          int sum = 0;
          int rows = array.GetLength(0);
          int cols = array.GetLength(1);
      
          for (int i = 0; i < rows; i++)
          {
              for (int j = 0; j < cols; j++)
              {
                  sum += array[i, j];
              }
          }
      
          return sum;
      }
      
      private void button1_Click(object sender, EventArgs e)
      {
         int sum = TotArray(A);
         richTextBox1.Text = string.Format("The sum of the array is {0}.", sum);
      }
      

      【讨论】:

      • 但是如果我返回 sum 它什么也没做......不给我任何值什么都没有
      • @TheBoringGuy 我猜,你没有将返回值存储到变量中。如果你不存储它,那意味着你只是忽略它。跨度>
      • nvm 我发现了我必须将 private int 更改为 private void 的错误
      • 更喜欢这个答案,因为它显示了更好的关注点分离。即对数组求和的方法只返回总计,而不是更新文本框的值。
      【解决方案3】:

      return sum;
      

      最后是 TotArray 方法。

      然后放置(用于测试)

      Debug.WriteLine(TotArray(A));
      

      在您的调用代码中,运行程序,检查输出窗口,您的总和应该会在输出窗口中返回。

      【讨论】:

        猜你喜欢
        • 2017-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-28
        • 2018-08-31
        • 2014-05-25
        • 1970-01-01
        相关资源
        最近更新 更多