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

c++ Как найти максимальный элемент матрицы и поменять его с последней строчкой матрицы. Не могу никак понять. Объясните

👇
Ответ:
Aytgbssh
Aytgbssh
20.02.2023

Условие  - Найти максимальный элемент матрицы. Строку, содержащую

максимальный элемент, поменять с последней строкой матрицы.

Нумерация в матрице начинается с 0.

С++ на Code Blocks 16

Объяснение:

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

   int  n = 8; // можно ввести любую размерность квадратной матрицы

   int a[n][n];

   int Nmax, Nind, i, j = 0 ;

   int d;

// Заполним матрицу случайными числами в диапазоне [0 ,100)

// и сразу её выведем

   cout << " ---- Array in start ---- " << endl;

   srand(time(0));

   for (int i = 0; i < n; i++) {

       for (int j = 0; j < n; j++) {

           a[i][j] = rand()%111;

           cout <<a[i][j] ;

           cout<< "    ";

       }

       cout << "  " << endl;

   }

// Поиск максимального элемента матрицы. Для оптимизации, можно было это произвести на этапе заполнения матрицы

// но для наглядности, напишем отдельно

   Nmax = 1;

   for (int i = 0; i < n; i++) {

       for (int j = 0; j < n; j++){

           if (Nmax < a[i][j]) {

             Nmax = a[i][j];

             Nind = i;

           }

       }

   }

   cout<< "Max ["<< Nind<<"] = "<< Nmax << endl;

// Меняем строки местами

   for (int j = 0; j < n; j++) {

         d = a[n-1][j];

         a[n-1][j]=a[Nind][j];

         a[Nind][j] = d;

    }

   cout << " ---- Array after modify ---- " << endl;

// Выводим полученную матрицу

   for (int i = 0; i < n; i++) {

     for (int j = 0; j < n; j++){

       cout << a[i][j] ;

       cout<< "    ";

     }

     cout << "  " << endl;

   }

   return 0;

}


c++ Как найти максимальный элемент матрицы и поменять его с последней строчкой матрицы. Не могу ника
4,7(85 оценок)
Открыть все ответы
Ответ:
Appolinaria1330
Appolinaria1330
20.02.2023
Ну вот, пока без комментариев по 1му вопросу. балы можете не добавлять.
Только тут ведется просмотр всего массива от B[1, 1] до B[n, m]
чтобы начинать просмотр скажем с [10, 10] надо вначале i j присвоить 10, и при переходе к следующему столбцу после приращения j на 1,устанавливать i:=10
 Далее что нужно, чтобы переделать его во 2е задание. Принцип пробега по массиву не меняется. Но теперь вместо min и max будем работать с рабочими переменными SUM и Pr. В SUM накапливаем сумму положительных. Начальное значение можно взять равное нулю.
Затем пробегаем по циклу сравниваем текущий элемент B[i, j] c 0 если B[i, j]>0, то добавляем его в сумму SUM:=SUM+B[i, j]
В противном случае переходим к следующему элементу.
Сложнее будет с произведением. Механизм накопления можно реализовать аналогично а вот какое присвоить начальное значение. 0? ну тогда, что бы мы не нашли произведение с 0 будет 0. 1? а вдруг вообще нет отрицательных элементов, а у нас произведение получится равным 1.
 Мне кажется надо сначала присвоить ему значение 0. А затем при пробежке по массиву при нахождении отрицательного числа сравнить произведение Pr с нулем
Pr=0? да тогда переопределяем его так: Pr:=B[i, j] (присваем ему значение найденного отрицательного элемента) .
Pr≠0? тогда переопределяем его так: Pr:=Pr*B[i, j]

P.S. И все-таки лучше уточнить у преподавателя, к чему относится отрезок. Т.е. это диапазон индексов поиска i, j? Или все же диапазон возможных значений элементов массива B[i, j]. Хотя можно выбрать один из вариантов и самому и оговорить его по ходу решения.(По-моему проще принять это как диапазон возможных значений элементов массива.)
На мой взгляд в условии следовало это оформить отдельным предложением. Например:
Числовые значения элементов массива принадлежат отрезку [-100; 100].
4,5(26 оценок)
Ответ:
khudobeidiana
khudobeidiana
20.02.2023
Если было роздано 8100 МБайт, а скорость раздачи втрое меньше скорости скачивания (15/5=3), то скачано было 8100*3=24300 МБайт.
Определим величину видеопотока данных.
1920*1080*2*18=74649600 (Байт/с) = 74649600/2^20=71.19 (МБайт/с)
В этом выражении 2 Байта- это 16/8 бит глубины цвета.
Определим величину аудиопотока данных.
Для хранения отсчета при 4096 уровнях квантования требуется 12 бит (2^12=4096).
Упаковки нет, поэтому будет использовано целое число байт - 2.
Тогда аудиопоток составит 192000*2*48=18432000 (Байт/с)=18432000/2^20=17.58 (МБайт/с).
Суммарный поток 71.19+17.58=88.77 (Мбайт/с)
Тогда длительность видеоролика составит 24300/88.77 ≈ 273.7 (c)
4,5(73 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ