Не удается правильно перемещать индексы в матрице

#c# #matrix

#c# #матрица

Вопрос:

введите описание изображения здесь

Здравствуйте. У меня есть задача суммировать числа, как показано. Перепробовал все, что мог, но все равно не нашел правильного ответа. Могу ли я получить некоторые рекомендации?

 static void Main(string[] args)
    {
        string input = Console.ReadLine();

        int n = (int)char.GetNumericValue(input[0]);
        int m = (int)char.GetNumericValue(input[2]);

        int[,] matrix = new int[n, m];

        int sum = 0;

        //fill matrix
        for (int i = 0; i < n; i  )
        {
            for (int j = 0; j < m; j  )
            {
                matrix[i, j] = (j * 3   1)   i * 3;
            }
        }

        for (int i = 0; i < matrix.GetLength(0) - 1; i =1)
        {
            for (int j = 0; j < matrix.GetLength(1) - i; j =1)
            {
                if (i % 2 == 0)
                {
                    sum  = matrix[i, j   i]   matrix[i   1, j   1];
                }
            }
        }

        Console.WriteLine(sum);
    }
 

Ответ №1:

Я думаю, вам было бы проще жестко кодировать входные данные (и называть их «столбцами» и «строками» вместо этого, гораздо более удобочитаемыми).

Каков ожидаемый результат? Не уверен, что я следую этой сумме. Я предполагаю, 297? Если это так:

   for (int i = 0; i < matrix.GetLength(0); i  )
  {
        for (int j = 0; j < matrix.GetLength(1); j  )
        {
                Console.Write(matrix[i, j]   " ");
                if(j == 5) Console.WriteLine();
                if (matrix[i, j] % 2 != 0)
        {
                    if (i == 0 || i == matrix.GetLength(0) - 1
                    || j == 0 || j == matrix.GetLength(0))
                {
                        sum  = (matrix[i, j]);
                }
                    else
                {
                        sum  = (matrix[i, j] * 2);
                }
            }
        }
   }