Предмет: Информатика, автор: bobbygrenn

С++ помогите с решением

Приложения:

ShirokovP: два вложенных цикла и все
bobbygrenn: у меня проблема с циклом поиска первого максимума выше побочной диагонали
bobbygrenn: включая границу
bobbygrenn: int max = INT_MIN;
bool fl_max_ch = false, fl_min_ch = false;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (j < n - 1 - i && arr[i][j] > max)
{
max = arr[i][j];
fl_max_ch = true;
}
}
}
bobbygrenn: границу не учитывает
ShirokovP: а если так j <= n - 1 - i
ShirokovP: поставить равно
bobbygrenn: помогло) спасибо
ShirokovP: теперь все работает?
bobbygrenn: да

Ответы

Автор ответа: Slavque
1
Сорри если немного не понятно, давно не работал с диагоналями матриц, постарался максимально просто написать. Сначала искал макс число выше побочной, потом минимальное ниже побочной, а дальше просто поменял местами.
Приложения:

bobbygrenn: Хорошее решение)) спасибо.....единственное мин не должен входит в границу
Slavque: тогда просто убери знак =
Slavque: обновил скриншот
Slavque: а нет, исправить не могу, поэтому держи вторую часть кода по поиску min
Slavque: int minI=4,minJ=4;
for (int i=0;i<n;i++)
for (int j=0;j<n;j++) {
if (i<n-j+1) {
if (arr[i][j]<arr[minI][minJ]) {
minI=i;
minJ=j;
}
}
}
Похожие вопросы
Предмет: Другие предметы, автор: valeriakuzmina523