C/C++

Написать программу на С++

Функции пользователя
Разработать алгоритмы решения подзадач, реализуемых функциями ввода,
вывода и обработки, написать программы, вызывающие эти функции, и
выполнить их тестирование. Входные данные вводятся с клавиатуры,
выходные выводятся на экран.
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
void fill_random(int* row, size_t n) {
uniform_int_distribution<> uid(-25, 75);
mt19937 gen{ random_device()() };
for (auto i = 0U; i < n; ++i) row[i] = uid(gen);
}
void output(int* row, size_t n) {
for (auto i = 0U; i < n; ++i) cout << setw(4) << row[i];
puts("");
}
bool is_positive(int* row, size_t n) {
for (auto i = 0U; i < n; ++i) if (row[i] <= 0) return false;
return true;
}
size_t index_min_element(int* row, size_t n) {
auto min = row[0];
auto index = 0U;
for (auto i = 1U; i < n; ++i) {
if (row[i] < min) {
min = row[i];
index = i;
}
}
return index;
}
int main() {
const auto n = 12U, m = 4U;
int matrix[n][m];
for (auto& row : matrix) fill_random(row, m);
for (auto& row : matrix) output(row, m);
for (int i = n - 1; i >= 0; --i) {
if (is_positive(matrix[i], m)) {
auto index = index_min_element(matrix[i], m);
cout
<< "Line: " << i + 1 << '\n'
<< "Element: matrix[" << i << "][" << index << "]\n"
<< "Value: " << matrix[i][index] << '\n';
break;
} else {
puts("Not found!");
}
}
system("pause > nul");
}
Aлександр Богданов
Aлександр Богданов
78 102
Лучший ответ
Примерно так
for(int *i:a)if(count_if(i,i+m,[](int a){return a>0;})==m)k=i;
cout<<*min_element(k,k+m);