Вопрос задан 18.06.2023 в 12:00. Предмет Информатика. Спрашивает Воробьев Евгений.

С++. БЕЗ ИСПОЛЬЗОВАНИЯ АДРЕСОВ И УКАЗАТЕЛЕЙ. Пусть дано натуральное число n и вещественная

матрица размером n x 10. Обменяйте местами строку, в которой находится ПОСЛЕДНИЙ максимальный элемент (в матрице может быть несколько максимальных элементов) с последней строкой. В программе обязательно рассмотрите случай, когда последний максимальный элемент находится на последней строке, тогда обмен производить не нужно.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Волковысский Александр.

#include <iostream>

#include <ctime>

using namespace std;

int main() {

   const int n = 4;

   float arr[n][10];

   

   cout << "Исходный массив: " << endl;

   srand(time(NULL));

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

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

           float minValue = -10.f;

           float maxValue = 10.f;

           arr[i][j] = (float)rand()/(float) RAND_MAX * (maxValue - minValue) + minValue;

           

           cout << arr[i][j] << " ";

       }

       cout << endl;

   }

   

   int maxIndex = 0;

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

       for (int j = 0; j < 10; j++)

           if (arr[i][j] >= arr[maxIndex/10][maxIndex%10])

               maxIndex = i * 10 + j;

   cout << "Max: " << "arr["<<maxIndex/10<<"]["<<maxIndex%10<<"] = "

       << arr[maxIndex/10][maxIndex%10] << endl;

   

   int row = maxIndex/10;

   if (row < n - 1){

       cout << "Меняем " << row + 1 << " и " << n << " строки местами: " << endl;

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

           float temp = arr[n-1][j];

           arr[n-1][j] = arr[row][j];

           arr[row][j] = temp;

       }

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

           for (int j = 0; j < 10; j++)

               cout << arr[i][j] << " ";

           cout << endl;

       }

   } else {

       cout << "Максимальный элемент находится на последней строке." << endl;

   }

   return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется выполнить следующие шаги:

1. Найти последнюю строку в матрице. 2. Найти максимальный элемент в матрице. 3. Если последний максимальный элемент находится на последней строке, то обмен производить не нужно. 4. Если последний максимальный элемент не находится на последней строке, то обменять последнюю строку с строкой, в которой находится последний максимальный элемент.

Вот пример кода на языке C++, который реализует данную логику:

```cpp #include #include

int main() { int n; // размерность матрицы std::cin >> n;

std::vector> matrix(n, std::vector(10));

// Ввод матрицы for (int i = 0; i < n; i++) { for (int j = 0; j < 10; j++) { std::cin >> matrix[i][j]; } }

int maxRowIndex = -1; // индекс строки с последним максимальным элементом double maxElement = matrix[0][0]; // предполагаем, что первый элемент - максимальный

// Поиск последнего максимального элемента и его строки for (int i = 0; i < n; i++) { for (int j = 0; j < 10; j++) { if (matrix[i][j] >= maxElement) { maxElement = matrix[i][j]; maxRowIndex = i; } } }

// Если последний максимальный элемент находится на последней строке, то обмен производить не нужно if (maxRowIndex != n - 1) { // Обмен местами последней строки с строкой, в которой находится последний максимальный элемент std::swap(matrix[maxRowIndex], matrix[n - 1]); }

// Вывод матрицы после обмена for (int i = 0; i < n; i++) { for (int j = 0; j < 10; j++) { std::cout << matrix[i][j] << " "; } std::cout << std::endl; }

return 0; } ```

Примечание: Представленный код решает задачу обмена строк в матрице, но не использует адресов и указателей, как требуется в условии задачи. Если вам необходимо выполнить задачу именно без использования адресов и указателей, то вам потребуется другой подход к решению.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос