М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
чапмит
чапмит
13.07.2021 08:24 •  Информатика

C++ дана матрица n × m. переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. определить можно ли таким же образом поместить минимальный элемент в нижний правый угол.

👇
Ответ:
vichkapetrenko
vichkapetrenko
13.07.2021
Ну вот как-то так, если что-то не ясно - спрашивай. Инициализации начальных элементов нет, так что без соответствующей правки она не заработает.

int main() {
    // Something
    int a[n][m];
    // Init

    // Находим максимум
    int im = 0, jm = 0, max = a[0][0];
    for (int i = 0 ; i < n; ++i)
        for (int j = 0; j < m; ++j)
            if (a[i][j] > max) {
                max = a[i][j];
                im = i;
                jm = j;
            }

    // Двигаем максимум вниз
    swapCollumn(a, n, m, im, n-1);
    swapRow(a, n, m, jm, m-1);

}

//Премещаем 2 столбца местами
void swapCollumn(int ** a, int n, int m, int c1, int c2) {
    if (c1 < 0 || c2 < 0 || c1 >= n || c2 >= n)
        return;
    for (int i = 0; i < m; ++i)
        swap(&a[c1][i], &a[c2][i]);
}

//Перемещаем 2 строки местами
void swapRow(int ** a, int n, int m, int r1, int r2) {
    if (r1 < 0 || r2 < 0 || r1 >= m || r2 >= m)
        return;
    for (int i = 0; i < n; ++i)
        swap(&a[i][r1], &a[i][r2]);
}

void swap(int * el1, int el2) {
    int t = *el1;
    *el1 = *el2;
    *el2 = *el1;
}
4,6(68 оценок)
Открыть все ответы
Ответ:
Zavaw
Zavaw
13.07.2021
Ищем в именах файлов закономерности, чтобы выделить пять из них.
1. Есть ровно пять файлов, начинающихся символом "p". В расширении имени (после точки) они имеют от одного до  трех символов.
Регулярное выражение будет иметь вид p[a-z]*.[a-z]*
2. Есть ровно пять файлов, имена которых завершаются символом "r". В расширении имени (после точки) они имеют от двух до  трех символов.
Регулярное выражение будет иметь вид [a-z]*r.[a-z]*

Ищем среди ответов похожий.
p+[a-z]*.[a-z]* - в принципе, то же, знак + тут необязателен, но и не мешает.
[a-z]*r+.[a-z]{3} - все портит это {3}, требующее ровно 3 повторения, а у нас от 2 до 3.

ответ:
p+[a-z]*.[a-z]*
4,8(13 оценок)
Ответ:
Финн2014
Финн2014
13.07.2021

1, 2, 3, 4

Объяснение:

Введем обозначения:

a = X > 0, b = X > 4

Тогда выражение будет иметь вид (a + b) → b и нужно найти условия, когда оно ложно. Вместо этого, мы будем искать, когда отрицание этого условия истинно, т.е. истинность ¬( (a + b) → b)

Для начала избавимся от импликации

¬( ¬(a + b) + b)

А теперь примерим к внешнему отрицанию закон де-Моргана

(a + b) · ¬b

Раскрываем скобки

a · ¬b  + b · ¬b

a · ¬b + 0

a · ¬b

Делаем обратную замену

( X > 0) · ¬(X > 4)

( X > 0) · (X ≤ 4)

Переведем это на более понятный язык:

X > 0 И X ≤ 4, или

0 < X ≤ 4

Из целых чисел сюда подойдут 1, 2, 3, 4.

4,8(24 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ