二维随机数组的总和
Sum of 2-d Random Array
我正在编写一个程序来创建一个二维数组,用随机数填充它,然后执行某些操作。
我的 SumArray()
方法应该有一个用于参数列表的二维数组,并将添加数组中的所有数字和 return 总和。我知道我现在拥有它的方式是错误的,我对如何做到这一点感到困惑。到目前为止,我在程序中的其他方法是否编码正确,或者它们是错误的并且不允许我执行程序的任务?
任何有关 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);
}
我认为你不需要那个
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];
}
}
}
我正在编写一个程序来创建一个二维数组,用随机数填充它,然后执行某些操作。
我的 SumArray()
方法应该有一个用于参数列表的二维数组,并将添加数组中的所有数字和 return 总和。我知道我现在拥有它的方式是错误的,我对如何做到这一点感到困惑。到目前为止,我在程序中的其他方法是否编码正确,或者它们是错误的并且不允许我执行程序的任务?
任何有关 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);
}
我认为你不需要那个
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];
}
}
}