Другие языки программирования и технологии

программисты помагите!!) ) P.S. в С++)

вводиться квадратная матрица порядка n элементов найти минимум всей матрицы и выдать на печать только те строки в которых минимумы больше минимумов всей матрицы
#include <iostream>
#include <string>
using namespace std;
int min_matrix(int**, int);
int min_row(int*, int);
void print(int*, int);
void print(int**, int);
void print(int**, int, int);
int* create_vector(int);
void delete_vector(int*);
int** create_matrix(int);
void delete_matrix(int**, int);
bool exist_matrix(int**);
void input(int*, int);
void input(int**, int);
int input_int(string = "Введите целое число: ");
int main() {
setlocale(0, "");
int n = input_int("Введите размер квадратной матрицы: ");
int** mx = nullptr;
if (mx = create_matrix(n)) {
cout << "Введите матрицу: \n";
input(mx, n);
system("cls");
cout << "\tИсходная матрица: \n";
print(mx, n);
int min = min_matrix(mx, n);
cout << "\tМинимум матрицы: " << min;
cout << "\n\tВывод строк, в которых минимум отсутствует: \n";
print(mx, n, min);
delete_matrix(mx, n);
mx = nullptr;
}
else cout << "\aПрограмме не удалаось создать марицу! \n";
cin.sync();
cin.get();
}
int min_matrix(int** mx, int size) {
int min = INT_MAX, tmp;
for (int i = 0; i < size; ++i) {
tmp = min_row(mx[i], size);
if (tmp < min) min = tmp;
}
return min;
}
int min_row(int* row, int s) {
int min = row[0];
for (int i = 1; i < s; ++i) if (row[i] < min) min = row[i];
return min;
}
void print(int* v, int s) {
for (int i = 0; i < s; ++i) cout << ' ' << v[i];
cout << endl;
}
void print(int** mx, int s) {
for (int i = 0; i < s; ++i) print(mx[i], s);
}
void print(int** mx, int s, int min) {
for (int i = 0; i < s; ++i) if (min_row(mx[i], s) > min) print(mx[i], s);
}
int* create_vector(int s) { return new(nothrow) int[s]; }
void delete_vector(int* p) { if (p) delete[] p; }
int** create_matrix(int s) {
int** p = nullptr;
if (p = new(nothrow) int*[s]) {
for (int row = 0; row < s; ++row) {
if (p[row] = create_vector(s));
else {
for (int r = 0; r < row; ++r) delete[] p[r];
p = nullptr;
break;
}
}
}
return p;
}
void delete_matrix(int** mx, int s) {
if (mx && s) {
for (int i = 0; i < s; ++i) delete_vector(mx[i]);
delete[] mx;
}
}
bool exist_matrix(int** p) { return p? true : false; }
void input(int* v, int s) { for (int i = 0; i < s; ++i) v[i] = input_int(); }
void input(int** mx, int s) { for (int i = 0; i < s; ++i) input(mx[i], s); }
int input_int(string msg) {
int i;
do {
cout << msg;
cin >> i;
if (cin.good()) return i;
else {
cin.clear();
cin.ignore(cin.rdbuf()->in_avail());
cout << "\aОшибка! \n";
}
} while (true);
}
Алексей Воробьев
Алексей Воробьев
83 337
Лучший ответ
минимумы больше минимумов... оу еееее
Роман Роман
Роман Роман
1 796