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

помогите с написанием программы на С++ чего-то просто не выкупаю как сделать..

Найти максимальный элемент среди всех элементов тех строк заданной матрицы A (4, 4), которые упорядочены по возрастанию. Если упорядоченных по возрастанию строк нет, то вывести на экран минимальный элемент матрицы. Матрицу ввести с клавиатуры.
DB
Dzhecson Byr
263
#include <iostream>
#include <iomanip>
using namespace std;
bool maximum(int *, int);
int main() {
    const int k = 4;
    int a[k][k];
    for (int n = 0; n < k; n++)
        for (int m = 0; m < k; m++) {
            cout << " a[" << n << "][" << m << " -> ";
            cin >> a[n][m];
        }
    system("cls");
    for (int n = 0; n < k; n++, cout << endl) for (int m = 0; m < k; m++) cout << setw(8) << a[n][m];
    bool mx = false, yes;
    int max = INT_MIN, min = a[0][0];
    for (int n = 0; n < k; n++) {
        yes = maximum(a[n], k);
        if (!mx && yes) mx = true;
        if (!mx) for (int m = 0; m < k; m++) if (min > a[n][m]) min = a[n][m];
        if (yes) for (int m = 0; m < k; m++) if (max < a[n][m]) max = a[n][m];
    }
    if (mx) cout << "\t Max = " << max << endl;
    else cout << "\t Min = " << min << endl;
    cin.get(); cin.get();
    return 0;
}
bool maximum(int * _v, int _s) {
    for (int n = 1; n < _s; n++) if (_v[n] < _v[n - 1]) return false;
    return true;
}
Сергей Гудым
Сергей Гудым
51 747
Лучший ответ
давай Андрей мы в тебя верим!
Проверяете строку на возрастание, если возрастает, то ищете максимум.
c := 0; for y := 1 to 4 do begin f := true; for x := 2 to 4 do if (a[x-1] > a[x]) then f := false; if (f) then begin if (c = 0) then max := a[1,y]; for x := 1 to 4 do if (a[x,y] < max) then max := a[x,y]; end; end; if (c = 0) then writeln('no') else writteln(max);