SHARE
TWEET

Untitled

a guest Oct 16th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <time.h>
  3.  
  4. using namespace std;
  5.  
  6. //Характеристикой строки прямоугольной матрицы называется сумма ее
  7. //положительных элементов.Перестроить заданную матрицу, переставляя в ней
  8. //строки так, чтобы значения их характеристик возрастали.
  9. //- вывести полученную матрицу;
  10. //-найти в ней количество столбцов, не содержащих нулей.
  11.  
  12. int sum(int* a, int m);
  13. void output(int** a, int n, int m);
  14. bool find0(int** a, int n, int m);
  15.  
  16. int main()
  17. {
  18.     srand((unsigned)time(NULL));
  19.  
  20.     int n, m;
  21.     cout << "Enter bumber of lines = ";
  22.     cin >> n;
  23.     cout << "Enter number of rows = ";
  24.     cin >> m;
  25.     cout << endl;
  26.  
  27.     if (n > 20 || m > 20 || m < 1 || n < 1)
  28.     {
  29.         return 1;
  30.     }
  31.  
  32.     int** a = new int* [n];
  33.  
  34.     for (int i = 0; i < n; i++)
  35.     {
  36.         a[i] = new int[m];
  37.     }
  38.  
  39.     for (int i = 0; i < n; i++)
  40.     {
  41.         for (int j = 0; j < m; j++)
  42.         {
  43.             a[i][j] = (rand() % 11 - 5);
  44.         }
  45.     }
  46.  
  47.     output(a, n, m);
  48.     cout << endl;
  49.  
  50.     for (int i = 0; i < n - 1; i++)
  51.     {
  52.         int maxSum = sum(a[i], m);
  53.         int maxPos = i;
  54.  
  55.         for (int ii = i + 1; ii < n; ii++)
  56.         {
  57.             int s = sum(a[ii], m);
  58.             if (s > maxSum)
  59.             {
  60.                 maxSum = s;
  61.                 maxPos = ii;
  62.             }
  63.         }
  64.  
  65.         int* t = a[i];
  66.         a[i] = a[maxPos];
  67.         a[maxPos] = t;
  68.     }
  69.  
  70.     output(a, n, m);
  71.  
  72.     int count = 0;
  73.     for (int j = 0; j < m; j++)
  74.     {
  75.         if (!find0(a, n, j))
  76.             count++;
  77.     }
  78.     cout << endl << endl << "Number of rows without ""0"" = " << count;
  79.  
  80.     for (int i = 0; i < n; i++)
  81.     {
  82.         delete[] a[i];
  83.     }
  84.  
  85.     delete[] a;
  86. }
  87.  
  88. int sum(int* a, int n)
  89. {
  90.     int result = 0;
  91.  
  92.     for (int i = 0; i < n; i++)
  93.     {
  94.             result += a[i];
  95.     }
  96.  
  97.     return result;
  98. }
  99.  
  100. void output(int** a, int n, int m)
  101. {
  102.     for (int i = 0; i < n; i++)
  103.     {
  104.         for (int j = 0; j < m; j++)
  105.         {
  106.             cout << a[i][j] << "   ";
  107.         }
  108.         cout << "      " << sum(a[i], m) << endl;
  109.     }
  110. }
  111.  
  112. bool find0(int** a, int n, int j)
  113. {
  114.     for (int i = 0; i < n; i++)
  115.     {
  116.         if (a[i][j] == 0)
  117.         {
  118.             return true;
  119.         }
  120.     }
  121.     return false;
  122. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top