- •Лабораторная работа № 1. Системы счисления
- •Лабораторная работа № 2. Способы представления алгоритмов
- •Лабораторная работа № 4. Ввод и вывод информации
- •Лабораторная работа № 5. Разветвляющиеся программы
- •Лабораторная работа № 6. Циклические программы
- •Лабораторная работа №7. Отладка программы
- •Лабораторная работа № 9
- •Лабораторная работа №10
- •Лабораторная работа № 11
- •Лабораторная работа № 12
- •Лабораторная работа № 13
- •Лабораторная работа № 14
- •Лабораторная работа № 15
- •Лабораторная работа №16
- •Лабораторная работа №17
Лабораторная работа №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;
}
}
}
}