Bohmirov

MATRIX-7

Oct 26th, 2020
794
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     setlocale(LC_ALL, "Russian");
  10.     srand(time(NULL));
  11.    
  12.     const int m = 100;
  13.     int a[m][m], n, sum_up = 0, sum_dwn = 0;
  14.  
  15.     cout << "Введите N от 3 до 100: ";
  16.     cin >> n;
  17.  
  18.     if (n < 3 || n > 100) {
  19.         cout << "Значение N вне допустимого диапазона" << endl << endl;
  20.         system("pause");
  21.         return 0;
  22.     }
  23.  
  24.     for (int i = 0; i < n; i++) {
  25.         for (int j = 0; j < n; j++) {
  26.             a[i][j] = rand() % 41 - 20;
  27.             cout << "A[" << i << "," << j << "] = " << setw(3) << a[i][j] << "\t";
  28.         }
  29.         cout << endl;
  30.     }
  31.  
  32.     for (int i = 0; i < n; i++)
  33.         for (int j = i + 1; j < n; j++) {
  34.             sum_up += a[i][j];
  35.             sum_dwn += a[j][i];
  36.         }
  37.  
  38.     int gcd, s1, s2, sign;
  39.  
  40.     if (sum_up > sum_dwn) {
  41.         s1 = sum_up;
  42.         s2 = sum_dwn;
  43.     }
  44.     else {
  45.         s1 = sum_dwn;
  46.         s2 = sum_up;
  47.     }
  48.  
  49.     sign = (s1 / abs(s1)) * (s2 / abs(s2));
  50.  
  51.     while (s2 != 0) {
  52.         int t = s2;
  53.         s2 = s1 % s2;
  54.         s1 = t;
  55.     }
  56.  
  57.     gcd = abs(s1);
  58.  
  59.     sum_up = abs(sum_up / gcd);
  60.     sum_dwn = abs(sum_dwn / gcd);
  61.  
  62.     cout << "Отношение сумм эл., лежащих выше и ниже гл. диаг.: " << sign * sum_up << "/" << sum_dwn << endl;
  63.  
  64.     system("pause");
  65.     return 0;
  66. }
RAW Paste Data