Advertisement
gasaichan

CLR_shenanigans_21

Oct 21st, 2018
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.50 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3. using namespace System;
  4.  
  5. String^ matrix_to_string(array<int, 2>^ matrix) {
  6.     String^ output;
  7.     for (int i = 0; i < matrix->GetLength(0); i++) {
  8.         for (int j = 0; j < matrix->GetLength(1); j++) {
  9.             output += matrix[i, j] + "\t";
  10.         }
  11.         output += "\n";
  12.     }
  13.     return output;
  14. }
  15.  
  16. String^ array_to_string(array<int>^ arr, int length) {
  17.     String^ output;
  18.     for (int i = 0; i < length; i++) {
  19.         output += arr[i] + "\t";
  20.     }
  21.     return output;
  22. }
  23.  
  24. int main(array<System::String ^> ^args)
  25. {
  26.     const int SIZE = 5;
  27.  
  28.     Random^ r = gcnew Random();
  29.  
  30.     array<int, 2>^ A = gcnew array<int, 2>(SIZE, SIZE);
  31.     array<int, 2>^ Q = gcnew array<int, 2>(SIZE, SIZE);
  32.  
  33.  
  34.     float a_main_diagonal_average = 0;
  35.     float q_main_diagonal_average = 0;
  36.  
  37.  
  38.     for (int i = 0; i < SIZE; i++) {
  39.         for (int j = 0; j < SIZE; j++) {
  40.             A[i, j] = r->Next(0, 100);
  41.             Q[i, j] = r->Next(0, 100);
  42.             if (i == j) {
  43.                 a_main_diagonal_average += A[i, j];
  44.                 q_main_diagonal_average += Q[i, j];
  45.             }
  46.         }
  47.     }
  48.  
  49.     a_main_diagonal_average /= SIZE;
  50.     q_main_diagonal_average /= SIZE;
  51.  
  52.     Console::WriteLine("Матрица A:");
  53.     Console::WriteLine(matrix_to_string(A));
  54.  
  55.     Console::WriteLine("Матрица Q:");
  56.     Console::WriteLine(matrix_to_string(Q));
  57.  
  58.  
  59.     Console::WriteLine("Среднее арифметическое элементов главной диагонали матрицы A: " + a_main_diagonal_average);
  60.     Console::WriteLine("Среднее арифметическое элементов главной диагонали матрицы Q: " + q_main_diagonal_average);
  61.  
  62.     array<int>^ R = gcnew array<int>(SIZE * SIZE);
  63.     array<int>^ B = gcnew array<int>(SIZE * SIZE);
  64.  
  65.  
  66.     int r_counter = 0;
  67.     int b_counter = 0;
  68.  
  69.     for (int i = 0; i < SIZE; i++) {
  70.         for (int j = 0; j < SIZE; j++) {
  71.             if (A[i, j] > a_main_diagonal_average) {
  72.                 B[b_counter] = A[i, j];
  73.                 b_counter++;
  74.             }
  75.             if (Q[i, j] > q_main_diagonal_average) {
  76.                 R[r_counter] = Q[i, j];
  77.                 r_counter++;
  78.             }
  79.         }
  80.     }
  81.  
  82.     Console::WriteLine("Массив B, содержащий элементы матрицы А, большие среднего арифметического ее главной диагонали: ");
  83.     Console::WriteLine(array_to_string(B, b_counter));
  84.  
  85.     Console::WriteLine("Массив R, содержащий элементы матрицы Q, большие среднего арифметического ее главной диагонали: ");
  86.     Console::WriteLine(array_to_string(R, r_counter));
  87.  
  88.  
  89.  
  90.  
  91.  
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement