Дан двумерный массив a, размером (n´m). Найти минимальный элемент в каждой строке матрицы среди положительных элементов
C++

VIRUS00000 VIRUS00000    2   13.10.2021 11:09    4

Ответы
sonya408 sonya408  13.10.2021 11:10

#include <iostream>

using namespace std;

int** CreateArr(int rows, int cols)

{

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

for (int i = 0; i < rows; i++) arr[i] = new int[cols];

return arr;

}

void FillArr(int** arr, int rows, int cols)

{

for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) arr[i][j] = -10 + rand() % 20;

}

void PrintArr(int** arr, int rows, int cols)

{

cout << endl << endl;

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

{

 int min{ -1 };

 cout << "Строка #" << i << ": ";

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

 {

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

  if (arr[i][j] >= 0 && (arr[i][j] < arr[min / 10][min % 10] || min == -1)) min = (i * 10) + j;

 }

 cout << '\t';

 if (min != -1) cout << "Минимальный положительный элемент в этой строке: " << arr[min / 10][min % 10] << " под индексом [" << min % 10 << ']' << endl;

 else cout << "Положительных элементов нет" << endl;

}

cout << endl << endl;

}

void DeleteArr(int** arr, int rows)

{

for (int i = 0; i < rows; i++) delete arr[i];

delete[] arr;

}

int main()

{

srand(time(NULL));

setlocale(0, "");

int n{}, m{};

cin >> n >> m;

int** a = CreateArr(n, m);

FillArr(a, n, m);

PrintArr(a, n, m);

DeleteArr(a, n);

return 0;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика