Просуммировать элементы матрицы и повернуть ее по часовой стрелке - C#

Узнай цену своей работы

Формулировка задачи:

1. Ввести двух мерный массив с клавиатуры. 2. Вывести двух мерный массив на экран. 3. Сума столбцов. 4.Сумма строк. 5. Сумма элементов стоящих на главнной диагонале. 6.Сумма элементов стоящих на побочной диагонале. 7.Сумма всех элементов массива. 8.Повернуть массив по часовой стрелки. 9.Повернуть массив против часовой стрелки.

Решение задачи: «Просуммировать элементы матрицы и повернуть ее по часовой стрелке»

textual
Листинг программы
        static int[] rowSum(int[,] a)
        {
            int [] ans = new int[a.GetLength(0)];
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    ans[i] += a[i, j];
            return ans;
        }
 
        static int[] colSum(int[,] a)
        {
            int [] ans = new int[a.GetLength(1)];
            for (int i = 0; i < a.GetLength(1); i++)
                for (int j = 0; j < a.GetLength(0); j++)
                    ans[i] += a[j, i];
            return ans;
        }
 
        private static int leftDiagSum(int[,] a)
        {
            int ans = 0;
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    if (i == j) ans += a[i, j];
            return ans;
        }
 
        private static int rightDiagSum(int[,] a)
        {
            int ans = 0;
            int k = a.GetLength(1)-1;
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    if (j==k )
                    {
                        ans += a[i, j];
                        k--;
                    }
            return ans;
        }
 
        private static int sum(int[,] a)
        {
            int ans = 0;
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    ans += a[i, j];
            return ans;
        }
 
        private static int[,] rotate90Clockwise(int[,] a)
        {
            int[,]ans = new int[a.GetLength(1),a.GetLength(0)];
            int k = a.GetLength(0) - 1;
            for (int i = 0; i < ans.GetLength(0); i++)
            {
                for (int j = 0; j < ans.GetLength(1); j++)
                {
                    ans[i, j] = a[k - j, i];
                }
            }
            return ans;
        }
 
        private static int[,] rotate90CounterClockwise(int[,] a)
        {
            int[,] ans = new int[a.GetLength(1), a.GetLength(0)];
            int k = a.GetLength(1) - 1;
            for (int i = 0; i < ans.GetLength(0); i++)
            {
                for (int j = 0; j < ans.GetLength(1); j++)
                {
                    ans[i, j] = a[j, k-i];
                }
            }
            return ans;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы