Arrays 二维随机阵列之和

Arrays 二维随机阵列之和,arrays,for-loop,multidimensional-array,parameters,variable-assignment,Arrays,For Loop,Multidimensional Array,Parameters,Variable Assignment,我正在编写一个程序,创建一个二维数组,用随机数填充它,然后执行某些操作 我的SumArray()方法应该为参数列表提供一个二维数组,并将数组中的所有数字相加,然后返回总和。我知道我现在的做法是错误的,我很难做到这一点。到目前为止,我在程序中的其他方法是正确编码的还是错误的,不允许我执行程序的任务 非常感谢您对SumArray()方法的任何帮助或我在代码的其他部分遇到的任何问题!!谢谢大家! 当我运行我的程序时,我得到一个错误,说索引超出了数组的界限 这是我的密码: static void Mai

我正在编写一个程序,创建一个二维数组,用随机数填充它,然后执行某些操作

我的
SumArray()
方法应该为参数列表提供一个二维数组,并将数组中的所有数字相加,然后返回总和。我知道我现在的做法是错误的,我很难做到这一点。到目前为止,我在程序中的其他方法是正确编码的还是错误的,不允许我执行程序的任务

非常感谢您对
SumArray()
方法的任何帮助或我在代码的其他部分遇到的任何问题!!谢谢大家!

当我运行我的程序时,我得到一个错误,说索引超出了数组的界限

这是我的密码:

static void Main(string[] args)
    {
        string[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
        string[,] randomNumArray = new string[3, 5];

        FillArray(randomNumArray);
        PrintArray(randomNumArray);
        SumRows(randomNumArray);
        SumCols(randomNumArray);
        SumArray(randomNumArray);

    }

    public static void FillArray(int[,] randomNumbersArray)
    {
        Random num = new Random();
        for (int r = 0; r < randomNumbersArray.GetLength(0); r++)
        {
            for (int c = 0; c < randomNumbersArray.GetLength(1); c++)
            {
                randomNumbersArray[r, c] = num.Next(15, 97);
            }
        }
    }

    public static void PrintArray(int[,] randomPrintArray)
    {
        for (int r = 0; r < randomPrintArray.GetLength(0); r++)
        {
            for (int c = 0; c < randomPrintArray.GetLength(1); r++)
            {
                Console.Write("{0}", randomPrintArray[r, c]);
            }
            Console.WriteLine();
        }
    }

    public static void SumRows(int[,] sumOfRowsArray)
    {
        int rowSum;
        for (int r = 0; r < sumOfRowsArray.GetLength(0); r++)
        {
            rowSum = 0;
            for (int c = 0; c < sumOfRowsArray.GetLength(1); c++)
            {
                rowSum += sumOfRowsArray[r, c];
            }
        }
    }

    public static void SumCols(int[,] sumOfColsArray)
    {
        int colsSum;
        for (int r = 0; r < sumOfColsArray.GetLength(1); r++)
        {
            colsSum = 0;

            for (int c = 0; c < sumOfColsArray.GetLength(0); c++)
            {
                colsSum += sumOfColsArray[r, c];
            }
        }
    }

    public static void SumArray(int[,] sumOfAllArray)
    {
        int sumOfAll 0;
        for (int r = 0; r < sumOfAllArray.GetLength(0); r++)
        {
            sumOfAll += sumOfAll;
            for (int c = 0; c < sumOfAllArray.GetLength(1); c++)
            {
                sumOfAll += sumOfAllArray[r, c];
            }
        }
        Console.Write(sumOfAll);
    }
static void Main(字符串[]args)
{
字符串[]个月={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
字符串[,]randomNumArray=新字符串[3,5];
FillArray(randomNumArray);
打印阵列(随机数字阵列);
萨姆罗(努马拉伊);
萨姆科尔斯(马瑞);
SumArray(随机Numarray);
}
公共静态空白填充数组(int[,]randomNumbersArray)
{
随机数=新随机数();
for(int r=0;r
我想你不需要这个

sumOfAll += sumOfAll;
SumArray
方法中。 如果我正确理解了您的代码,那么在内部循环中计算列和,然后在下一次迭代中将其添加到自身中?例如,在内部循环之后,第一列的总和为10。将该10添加到它本身,在迭代第二列之前,总的总和为20

正确的代码:

public static void SumArray(int[,] sumOfAllArray)
{
    int sumOfAll;
    for (int r = 0; r < sumOfAllArray.GetLength(0); r++)
    {
        for (int c = 0; c < sumOfAllArray.GetLength(1); c++)
        {
            sumOfAll += sumOfAllArray[r, c];
        }
    }
}
publicstaticvoidsumarray(int[,]sumofallary)
{
int sumOfAll;
for(int r=0;r
SumRows()是行的总和SumCols()应该找到列的总和,FillArray()应该用随机数填充数组有什么原因你认为这些部分可能会损坏吗?我会尝试用一些东西填充行/列,这样我就知道应该是多少,并验证它(至少在简单的情况下)。例如,如果我填写了所有的1,我应该知道这个和应该是什么。我的SumArray方法有一个错误。sumOfAll+=sumOfAll出现错误,因此我无法运行它来检查任何内容。我对如何执行数组求和感到困惑。由于某种原因,当我删除sumOfAll+=sumOfAll时,它会给我一个错误,即sumOfAll+=sumofallary[r,c]表示“使用未分配的局部变量sumOfAll”嗯,您可能没有初始化该变量。尝试在method.alrite的开头将“int-sumOfAll;”更改为“int-sumOfAll=0;”,我将其初始化为零,但当我尝试运行代码时,现在它表示索引超出了数组的边界。我在数组
FillArray(randomNumArray)的声明和创建下面添加了这些方法
打印阵列(randomNumArray)
sumrrows(randomNumArray)
SumCols(随机数)
sumaray(随机数)按照这个顺序,我将编辑上面的代码以显示我还添加了一个Console.Write(sumOfAll)语句来输出要检查的和。是否在此方法中越界?这是c#?嗯,我要做的第一件事是看看GetLength(0)和GetLength(1)是否没有混淆。不知道为什么,但我感觉GetLength(0)返回列数,GetLength(1)返回行数。尝试一下:将0更改为1,反之亦然:)