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,反之亦然:)