Видалити із масиву стовпець із заданим номером і рядок, де заходиться мінімальний елемент. С++
Ответы на вопрос
Ответ:
#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;
}
Объяснение:
вроде код рабочий, не проверял
Ваше запитання стосується видалення стовпця та рядка з масиву, де знаходиться мінімальний елемент.
Перш за все, вам необхідно знайти мінімальний елемент та його розташування (номер рядка та номер стовпця). Ми можемо це зробити, перебираючи всі елементи масиву та зберігаючи мінімальний елемент та його координати.
Ось код, який показує, як знайти мінімальний елемент та його координати:
```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; } ```
Зверніть увагу, що у коді я використовую динамічну пам'ять для створення двовимірного масиву. Не забудьте звільнити пам'ять після завершення роботи з масивом.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
