Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement