我正在尝试构建一个2d数组(其大小由用户输入)用int填充(按数字顺序),然后对所有列,行和对角线求和,以查看它们是否相同,此时布尔值是true还是false?在面试时练习,但是这个已经抓住了我!谢谢
int[,] n;
Console.WriteLine("Please enter an integer: ");
int number = Convert.ToInt32(Console.ReadLine());
int row = number;
int column = number;
n = new int[row, column];
int i, j;
for (i = 0; i < row - 1; i++)
{
for (j = 0; j < column - 1; j++)
{
n[i, j] = i + 1;
}
答案 0 :(得分:0)
它应该是这样的,我不确定是否正确,但你明白了。
var array = new int[10,10];
int sum = 0;
// Fill array
for(int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
array[i, j] = i + j*10;
// Sum horizontal
var sumRows = new int[10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
sumRows[i] += array[i, j];
// Sum vertical
var sumColumns = new int[10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
sumColumns[j] += array[i, j];
// Diagonal A
int diagonalA = 0;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
if (i == j) diagonalA += array[i, j];
// Diagonal B
int diagonalB = 0;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
if (10-i-1 == j) diagonalB += array[i, j];