Advertisement
parad0xxxxx

LW6 Ilona

Jan 24th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip> // для функции setw() задает разную ширину поля вывода строк
  3. #include <clocale> // для подключения языка
  4. #include <time.h>
  5. using namespace std;
  6.  
  7. int main() {
  8. int RJAD = 3, COL = 4, a = 2, b = -20, c = 10; // что значит конст?
  9. setlocale(LC_ALL, "Russian");
  10. cout << "Введите количество рядов : " << endl;
  11. // cin >> RJAD;
  12. cout << "Введите количество столбцов : " << endl;
  13. // cin >> COL;
  14.  
  15. int** arr = new int* [RJAD]; //hranit stro4ki,создали massiv ukazatelej na stro4ki ( na kazdij otd massiv ) указатель на каждый ряд!
  16. //в кажд ячейку ложить указатель на др массив (ряд с колич колонн)
  17. for (int i = 0; i < RJAD; i++)
  18. arr[i] = new int[COL];
  19.  
  20. cout << "Выберите и введите соответствующий номер : 1 - ввод массива вручную ; 2 - с помощью генератора: ";
  21. // cin >> a;
  22.  
  23. if (a == 1) {
  24.  
  25. cout << "Введите элементы рядов и столбцов: " << endl;
  26.  
  27. for (int i = 0; i < RJAD; i++) {
  28. cout << "Введите элементы " << i + 1 << "-ого ряда: " << endl;
  29. //cout << endl;
  30. for (int j = 0; j < COL; j++) {
  31. cout << "Введите " << j + 1 << "-й элемент ряда: ";
  32.  
  33. cin >> arr[i][j];
  34. //cout << setw(4) << arr[i][j];
  35.  
  36. }
  37. cout << endl;
  38.  
  39. }
  40. for (int i = 0; i < RJAD; i++) {
  41. for (int j = 0; j < COL; j++) {
  42. cout << setw(4) << arr[i][j];
  43.  
  44. }
  45. cout << endl;
  46.  
  47. }
  48.  
  49. }
  50.  
  51. else if (a == 2) {
  52. cout << "Введите начальное число диапазона массива: " << endl;
  53. // cin >> b;
  54. cout << "Введите завершающее число диапазона массива: " << endl;
  55. // cin >> c;
  56. srand(time(NULL));
  57.  
  58.  
  59. for (int i = 0; i < RJAD; i++) {
  60.  
  61. arr[i] = new int[COL]; // в каждый элемент присваиваем новый динамический массив
  62. }
  63.  
  64.  
  65. for (int i = 0; i < RJAD; i++) { // смещаемся на элемент вперед от одного к второму массиву, когда отработает внутр цикл
  66.  
  67. for (int j = 0; j < COL; j++) { // и идем по всем его элементам в строчке
  68.  
  69.  
  70. arr[i][j] = rand() % (c - b + 1) + b; // и опять наполняем данными
  71.  
  72. cout << setw(5) << arr[i][j];
  73.  
  74. }
  75. cout << endl;
  76. }
  77. }
  78.  
  79. else { cout << "Введенные значения не соответствуют номерам 1 и 2! Попробуйте еще раз! " << endl; }
  80. cout << "---------------------------------" << endl;
  81. // Aprēķināt negatīvu elementu reizinājumu tajās masīva kolonnās, kurās ir vismaz viens pozitīvs elements.
  82.  
  83. int Umn;
  84. bool isPositive;
  85. bool isFirst;
  86. for (int j = 0; j < COL; j++) {
  87. Umn = 0;
  88. isPositive = false;
  89. isFirst = false;
  90. for (int i = 0; i < RJAD; i++) {
  91.  
  92. if (arr[i][j] >= 0) {
  93. isPositive = true;
  94. }
  95.  
  96. else if (!isFirst && arr[i][j] < 0) {
  97. Umn = arr[i][j];
  98. isFirst = true;
  99. }
  100. else if (isFirst && arr[i][j] < 0) {
  101. Umn = Umn * arr[i][j];
  102. }
  103.  
  104.  
  105.  
  106. }
  107. if (isPositive)
  108. {
  109. cout << setw(5) << Umn;
  110. }
  111. else {
  112. cout << setw(5) << "-";
  113. }
  114.  
  115. }
  116. //for (int j = 0; j < COL; j++) {
  117. //for (int i = 0; i < RJAD; i++) {
  118. //if (arr[i][j] < 0) {
  119. // cout << " Произведение негативных " << j + 1 << "-ого столбца равно " << Umn << endl;
  120. // Umn = 1;
  121. // }
  122. //}
  123. //}
  124. // }
  125.  
  126. for (int i = 0; i < RJAD; i++)
  127. delete[] arr[i];
  128. delete[] arr;
  129.  
  130.  
  131. return 0;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement