Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАП12вар1Сем.docx
Скачиваний:
7
Добавлен:
30.01.2023
Размер:
1.3 Mб
Скачать

Лабораторная работа №17

12

1. Найти количество отрицательных элементов, стоящих на чётных местах в одномерном массиве.

2. Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее номер. Все элементы столбца с таким же номером уменьшить вдвое.

1.

/*1. Найти количество отрицательных элементов, стоящих на чётных местах в одномерном массиве.

2. Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее но-мер.

Все элементы столбца с таким же номером уменьшить вдвое.*/

#include <iostream>

void var12();

int var12_first(int *arr, int &n);

void matrix(double** matr, int rows, int cols, int &numbrow);

void var12_2();

int &dmin(int A[], int size);

int &dmax(int A[], int size);

using namespace std;

int main()

{

setlocale(LC_CTYPE, "Russian");

int choice;

do

{

cout << "Выберите вариант работы" << endl;

cout << "1 - Вариант 12" << endl;

cin >> choice;

switch (choice)

{

case 1:

var12();

var12_2();

break;

} while (choice != 5);

}

void var12()

{

int k;

cout << "Введите число эл массива: " << endl;

cin >> k;

int* arr = new int[k];

for (int i = 0; i < k; i++)

{

cout << "Введите эл массива: " << endl;

cin >> arr[i];

}

for (int i = 0; i < k; i++)

{

cout << "Массив[" << i << "]: " << arr[i] << endl;

}

int res = var12_first(arr, k);

cout << "Количество отрицательных элементов, стоящих на чётных местах в одномерном массиве: " << res << endl;

delete[] arr;

}

int var12_first(int* arr, int& n)

{

int count = 0;

for (int i = 2; i < n; i += 2)

{

if (arr[i] < 0)

{

count++;

}

}

return count;

}

void var12_2()

{

int rows, cols;

cout << "Введите колво строк: " << endl;

cin >> rows;

cout << "Введите колво столбцов: " << endl;

cin >> cols;

double** arr = new double* [rows];

for (int i = 0; i < rows; i++)

{

arr[i] = new double[cols];

}

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

arr[i][j] = rand() % 10 - 5;

cout << arr[i][j] << "\t";

}

cout << endl;

}

int numbrow = 0;

cout << endl;

matrix(arr, rows, cols, numbrow);

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

cout << arr[i][j] << "\t";

}

cout << endl;

}

for (int i = 0; i < rows; i++)

{

delete[] arr[i];

}

delete[] arr;

}

void matrix(double** matr, int rows, int cols, int& numbrow)

{

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

if (matr[i][j] < 0)

{

numbrow = i;

cout << "Номер строки: " << numbrow << endl;

for (int k = 0; k < rows; k++)

{

matr[k][j] /= 2;

}

return;

}

}

}

}