Вопрос задан 12.11.2023 в 18:17. Предмет Информатика. Спрашивает Синдинова Кристина.

Видалити із масиву стовпець із заданим номером і рядок, де заходиться мінімальний елемент. С++

0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

int main() {

   const int rows = 3; // Кількість рядків

   const int cols = 4; // Кількість стовпців

   int matrix[rows][cols] = {

       {5, 7, 2, 8},

       {3, 1, 9, 4},

       {6, 0, 2, 7}

   };

   // Виведемо початковий масив

   std::cout << "Початковий масив:" << std::endl;

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

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

           std::cout << matrix[i][j] << " ";

       }

       std::cout << std::endl;

   }

   int minRow = 0;

   int minCol = 0;

   int minValue = matrix[0][0];

   // Знайдемо рядок і стовпець з мінімальним елементом

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

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

           if (matrix[i][j] < minValue) {

               minValue = matrix[i][j];

               minRow = i;

               minCol = j;

           }

       }

   }

   // Видалимо рядок з мінімальним елементом

   for (int i = minRow; i < rows - 1; i++) {

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

           matrix[i][j] = matrix[i + 1][j];

       }

   }

   // Зменшимо кількість рядків

   rows--;

   // Видалимо стовпець з заданим номером

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

       for (int j = minCol; j < cols - 1; j++) {

           matrix[i][j] = matrix[i][j + 1];

       }

   }

   // Зменшимо кількість стовпців

   cols--;

   // Виведемо оновлений масив

   std::cout << "Оновлений масив:" << std::endl;

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

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

           std::cout << matrix[i][j] << " ";

       }

       std::cout << std::endl;

   }

   return 0;

}

Объяснение:

вроде код рабочий, не проверял

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

Ваше запитання стосується видалення стовпця та рядка з масиву, де знаходиться мінімальний елемент.

Перш за все, вам необхідно знайти мінімальний елемент та його розташування (номер рядка та номер стовпця). Ми можемо це зробити, перебираючи всі елементи масиву та зберігаючи мінімальний елемент та його координати.

Ось код, який показує, як знайти мінімальний елемент та його координати:

```c++ int main() { int array[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int minElement = array[0][0]; int minRow = 0; int minCol = 0;

// Перебираємо всі елементи масиву for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (array[i][j] < minElement) { minElement = array[i][j]; minRow = i; minCol = j; } } }

// Виводимо мінімальний елемент та його координати std::cout << "Мінімальний елемент: " << minElement << std::endl; std::cout << "Рядок: " << minRow << std::endl; std::cout << "Стовпець: " << minCol << std::endl;

return 0; } ```

Після знаходження мінімального елемента та його координат, ми можемо видалити відповідний рядок та стовпець з масиву. Ось один з методів реалізації видалення рядка та стовпця:

```c++ void deleteRowAndCol(int** array, int size, int row, int col) { // Видаляємо рядок for (int i = row; i < size - 1; i++) { for (int j = 0; j < size; j++) { array[i][j] = array[i + 1][j]; } } // Видаляємо стовпець for (int i = 0; i < size; i++) { for (int j = col; j < size - 1; j++) { array[i][j] = array[i][j + 1]; } } }

int main() { const int SIZE = 3; int** array = new int*[SIZE]; for (int i = 0; i < SIZE; i++) { array[i] = new int[SIZE]; } // Заповнюємо масив значеннями // ... // Знаходимо мінімальний елемент та його координати int minElement = array[0][0]; int minRow = 0; int minCol = 0;

// Перебираємо всі елементи масиву for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { if (array[i][j] < minElement) { minElement = array[i][j]; minRow = i; minCol = j; } } } // Видаляємо рядок та стовпець з масиву deleteRowAndCol(array, SIZE, minRow, minCol); // Виводимо оновлений масив for (int i = 0; i < SIZE - 1; i++) { for (int j = 0; j < SIZE - 1; j++) { std::cout << array[i][j] << " "; } std::cout << std::endl; } return 0; } ```

Зверніть увагу, що у коді я використовую динамічну пам'ять для створення двовимірного масиву. Не забудьте звільнити пам'ять після завершення роботи з масивом.

0 0

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

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

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

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