Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip> // для функции setw() задает разную ширину поля вывода строк
- #include <clocale> // для подключения языка
- #include <time.h>
- using namespace std;
- int main() {
- int RJAD = 3, COL = 4, a = 2, b = -20, c = 10; // что значит конст?
- setlocale(LC_ALL, "Russian");
- cout << "Введите количество рядов : " << endl;
- // cin >> RJAD;
- cout << "Введите количество столбцов : " << endl;
- // cin >> COL;
- int** arr = new int* [RJAD]; //hranit stro4ki,создали massiv ukazatelej na stro4ki ( na kazdij otd massiv ) указатель на каждый ряд!
- //в кажд ячейку ложить указатель на др массив (ряд с колич колонн)
- for (int i = 0; i < RJAD; i++)
- arr[i] = new int[COL];
- cout << "Выберите и введите соответствующий номер : 1 - ввод массива вручную ; 2 - с помощью генератора: ";
- // cin >> a;
- if (a == 1) {
- cout << "Введите элементы рядов и столбцов: " << endl;
- for (int i = 0; i < RJAD; i++) {
- cout << "Введите элементы " << i + 1 << "-ого ряда: " << endl;
- //cout << endl;
- for (int j = 0; j < COL; j++) {
- cout << "Введите " << j + 1 << "-й элемент ряда: ";
- cin >> arr[i][j];
- //cout << setw(4) << arr[i][j];
- }
- cout << endl;
- }
- for (int i = 0; i < RJAD; i++) {
- for (int j = 0; j < COL; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << endl;
- }
- }
- else if (a == 2) {
- cout << "Введите начальное число диапазона массива: " << endl;
- // cin >> b;
- cout << "Введите завершающее число диапазона массива: " << endl;
- // cin >> c;
- srand(time(NULL));
- for (int i = 0; i < RJAD; i++) {
- arr[i] = new int[COL]; // в каждый элемент присваиваем новый динамический массив
- }
- for (int i = 0; i < RJAD; i++) { // смещаемся на элемент вперед от одного к второму массиву, когда отработает внутр цикл
- for (int j = 0; j < COL; j++) { // и идем по всем его элементам в строчке
- arr[i][j] = rand() % (c - b + 1) + b; // и опять наполняем данными
- cout << setw(5) << arr[i][j];
- }
- cout << endl;
- }
- }
- else { cout << "Введенные значения не соответствуют номерам 1 и 2! Попробуйте еще раз! " << endl; }
- cout << "---------------------------------" << endl;
- // Aprēķināt negatīvu elementu reizinājumu tajās masīva kolonnās, kurās ir vismaz viens pozitīvs elements.
- int Umn;
- bool isPositive;
- bool isFirst;
- for (int j = 0; j < COL; j++) {
- Umn = 0;
- isPositive = false;
- isFirst = false;
- for (int i = 0; i < RJAD; i++) {
- if (arr[i][j] >= 0) {
- isPositive = true;
- }
- else if (!isFirst && arr[i][j] < 0) {
- Umn = arr[i][j];
- isFirst = true;
- }
- else if (isFirst && arr[i][j] < 0) {
- Umn = Umn * arr[i][j];
- }
- }
- if (isPositive)
- {
- cout << setw(5) << Umn;
- }
- else {
- cout << setw(5) << "-";
- }
- }
- //for (int j = 0; j < COL; j++) {
- //for (int i = 0; i < RJAD; i++) {
- //if (arr[i][j] < 0) {
- // cout << " Произведение негативных " << j + 1 << "-ого столбца равно " << Umn << endl;
- // Umn = 1;
- // }
- //}
- //}
- // }
- for (int i = 0; i < RJAD; i++)
- delete[] arr[i];
- delete[] arr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement