RMarK0

Untitled

Dec 27th, 2019
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.07 KB | None | 0 0
  1. namespace ConsoleApp1
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             int i, j, k = 0, l;
  8.             int n = 4;
  9.             int sum = 0;
  10.             int[,] arr = new int[n, n];
  11.             int[] arr1 = new int[n * n];
  12.             Random r = new Random(24115);
  13.             for (i = 0; i < n; i++) // заполнение матрицы рандом числами и вывод ее
  14.             {
  15.                 for (j = 0; j < n; j++)
  16.                 {
  17.                     arr[i, j] = r.Next(-5, 9);
  18.                     arr1[k] = arr[i, j];
  19.                     k++;
  20.                     if (i == j)
  21.                         Console.ForegroundColor = ConsoleColor.Green;
  22.                     Console.Write($"{arr[i, j],3}");
  23.                     Console.ResetColor();
  24.                 }
  25.                 Console.WriteLine();
  26.             }
  27.             foreach (int number in arr1)
  28.                 Console.Write("{0} ", number); // вывод двумерной матрицы в одномерный массив
  29.  
  30.             Console.WriteLine("\n");
  31.             j = 0; // j - граница до какого момента добавлять (от К до J)
  32.             k = 0; // k - начальная позиция в массиве одномерном
  33.             l = 0; // l - кол-во чисел которое надо добавить в сумму
  34.             int sum2 = 0;
  35.             while (k < n * n)
  36.             {
  37.                 l++;
  38.                 j = k + l;
  39.                 for (i = k; i < j; i++)
  40.                 {
  41.                     sum += arr1[i];
  42.                 }
  43.  
  44.                 k += n; // переход на след. строку в матрице
  45.             }
  46.             Console.WriteLine("Сумма левого треугольника с главной диагональю - {0}", sum);
  47.  
  48.             j = 0; // j - граница до какого момента добавлять (от К до J)
  49.             k = 0; // начальная точка
  50.             while (k < n * n)
  51.             {
  52.                 j += n;
  53.  
  54.                 for (i = k; i < j; i++)
  55.                     sum2 += arr1[i];
  56.                 k += n + 1; // проход по главной диагонали
  57.             }
  58.             Console.WriteLine("Сумма правого треугольника с главной диагональю - {0}", sum2);
  59.  
  60.             j = 0; // j - граница до какого момента добавлять (от К до J)
  61.             k = n - 1;
  62.             l = n; // кол-во чисел которые мы добавляем
  63.             sum = 0;
  64.             while (k < n * n)
  65.             {
  66.                 j = k - l;
  67.  
  68.                 for (i = k; i > j; i--) // добавляем влево
  69.                     sum += arr1[i];
  70.  
  71.                 k += n - 1; // проход по побочной диагонали
  72.                 l--; // убираем одно число
  73.             }
  74.             Console.WriteLine("Сумма побочного левого треугольника с диагональю - {0}", sum);
  75.  
  76.             j = 0; // j - граница до какого момента добавлять (от К до J)
  77.             k = n - 1; // начальная точка
  78.             l = 1; // кол-во чисел которые мы добавляем
  79.  
  80.             sum2 = 0;
  81.             while (k < n * n)
  82.             {
  83.                 j = k + l;
  84.                 l++; // увеличивается кол-во доб. элементов
  85.                 if (j > n * n) // чтобы не выбивало ошибку из-за выхода вне матрицы
  86.                     break;
  87.                 for (i = k; i < j; i++)
  88.                     sum2 += arr1[i];
  89.                 k += (n-1); // проход по побочной диагонали
  90.  
  91.             }
  92.             Console.WriteLine("Сумма побочного правого треугольника с диагональю - {0}", sum2);
  93.             Console.Read();
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment