Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConsoleApp1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int i, j, k = 0, l;
- int n = 4;
- int sum = 0;
- int[,] arr = new int[n, n];
- int[] arr1 = new int[n * n];
- Random r = new Random(24115);
- for (i = 0; i < n; i++) // заполнение матрицы рандом числами и вывод ее
- {
- for (j = 0; j < n; j++)
- {
- arr[i, j] = r.Next(-5, 9);
- arr1[k] = arr[i, j];
- k++;
- if (i == j)
- Console.ForegroundColor = ConsoleColor.Green;
- Console.Write($"{arr[i, j],3}");
- Console.ResetColor();
- }
- Console.WriteLine();
- }
- foreach (int number in arr1)
- Console.Write("{0} ", number); // вывод двумерной матрицы в одномерный массив
- Console.WriteLine("\n");
- j = 0; // j - граница до какого момента добавлять (от К до J)
- k = 0; // k - начальная позиция в массиве одномерном
- l = 0; // l - кол-во чисел которое надо добавить в сумму
- int sum2 = 0;
- while (k < n * n)
- {
- l++;
- j = k + l;
- for (i = k; i < j; i++)
- {
- sum += arr1[i];
- }
- k += n; // переход на след. строку в матрице
- }
- Console.WriteLine("Сумма левого треугольника с главной диагональю - {0}", sum);
- j = 0; // j - граница до какого момента добавлять (от К до J)
- k = 0; // начальная точка
- while (k < n * n)
- {
- j += n;
- for (i = k; i < j; i++)
- sum2 += arr1[i];
- k += n + 1; // проход по главной диагонали
- }
- Console.WriteLine("Сумма правого треугольника с главной диагональю - {0}", sum2);
- j = 0; // j - граница до какого момента добавлять (от К до J)
- k = n - 1;
- l = n; // кол-во чисел которые мы добавляем
- sum = 0;
- while (k < n * n)
- {
- j = k - l;
- for (i = k; i > j; i--) // добавляем влево
- sum += arr1[i];
- k += n - 1; // проход по побочной диагонали
- l--; // убираем одно число
- }
- Console.WriteLine("Сумма побочного левого треугольника с диагональю - {0}", sum);
- j = 0; // j - граница до какого момента добавлять (от К до J)
- k = n - 1; // начальная точка
- l = 1; // кол-во чисел которые мы добавляем
- sum2 = 0;
- while (k < n * n)
- {
- j = k + l;
- l++; // увеличивается кол-во доб. элементов
- if (j > n * n) // чтобы не выбивало ошибку из-за выхода вне матрицы
- break;
- for (i = k; i < j; i++)
- sum2 += arr1[i];
- k += (n-1); // проход по побочной диагонали
- }
- Console.WriteLine("Сумма побочного правого треугольника с диагональю - {0}", sum2);
- Console.Read();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment