C#2维数组求和并检查返回true或false bool的值

时间:2014-01-29 16:42:17

标签: c# multidimensional-array

我正在尝试构建一个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;                            
           }

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];