【发布时间】:2015-06-29 02:52:15
【问题描述】:
我正在编写一个程序,它创建一个二维数组,用随机数填充它,然后执行某些操作。
我的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);
}
【问题讨论】:
-
SumRows() 是行的总和 SumCols() 应该找到列的总和,而 FillArray() 应该用随机数填充数组
-
您有什么理由认为这些部分可能会损坏吗?我会尝试用一些东西填充行/列,以便我知道总和应该是什么并验证它(至少在简单的情况下)。例如,如果我填写所有 1,我应该知道总和是多少。
-
我的 SumArray 方法有错误。 sumOfAll += sumOfAll 出现错误,因此我无法运行它来检查任何内容。我对如何执行数组的总和感到困惑。
标签: arrays for-loop multidimensional-array parameters variable-assignment