Другие языки программирования и технологии
двумерный массив С++
В произвольной матрице A [ N ][ M ] поменять местами в каждой строке минимальный и максимальный элементы.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
void show_matrix(int **, const size_t, const size_t);
void swap_min_max_row_matrix(int **, const size_t, const size_t);
int * min_index(int *, const size_t);
int * max_index(int *, const size_t);
int main() {
cout << "rows, columns?.. ";
size_t r, c;
cin >> r >> c;
int ** a = new int * [r];
srand(unsigned(time(0)));
for (size_t n = 0; n < r; n++) {
a[n] = new int [c];
for (size_t m = 0; m < c; m++)
a[n][m] = rand();
}
show_matrix(a, r, c);
swap_min_max_row_matrix(a, r, c);
show_matrix(a, r, c);
for (size_t n = 0; n < r; n++) delete[] a[n];
delete[] a;
a = NULL;
cin.get(); cin.get();
return 0;
}
void show_matrix(int ** p, const size_t r, const size_t c) {
for (size_t n = 0; n < r; n++, cout << endl)
for (size_t m = 0; m < c; m++)
cout << setw(7) << p[n][m];
cout << endl;
}
int * min_index(int * beg, const size_t size) {
int * index = 0;
int min = INT_MAX;
for (size_t n = 0; n < size; n++)
if (beg[n] < min) {
min = beg[n];
index = &beg[n];
}
return index;
}
int * max_index(int * beg, const size_t size) {
int * index = 0;
int max = INT_MIN;
for (size_t n = 0; n < size; n++)
if (beg[n] > max) {
max = beg[n];
index = &beg[n];
}
return index;
}
void swap_min_max_row_matrix(int ** ptr, const size_t rows, const size_t cols) {
int temp;
int * min, * max;
size_t next = 0;
for (ptr[next]; ptr[next] < ptr[rows]; next++) {
max = max_index(ptr[next], cols);
min = min_index(ptr[next], cols);
temp = *min;
*min = *max;
*max = temp;
}
}
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
void show_matrix(int **, const size_t, const size_t);
void swap_min_max_row_matrix(int **, const size_t, const size_t);
int * min_index(int *, const size_t);
int * max_index(int *, const size_t);
int main() {
cout << "rows, columns?.. ";
size_t r, c;
cin >> r >> c;
int ** a = new int * [r];
srand(unsigned(time(0)));
for (size_t n = 0; n < r; n++) {
a[n] = new int [c];
for (size_t m = 0; m < c; m++)
a[n][m] = rand();
}
show_matrix(a, r, c);
swap_min_max_row_matrix(a, r, c);
show_matrix(a, r, c);
for (size_t n = 0; n < r; n++) delete[] a[n];
delete[] a;
a = NULL;
cin.get(); cin.get();
return 0;
}
void show_matrix(int ** p, const size_t r, const size_t c) {
for (size_t n = 0; n < r; n++, cout << endl)
for (size_t m = 0; m < c; m++)
cout << setw(7) << p[n][m];
cout << endl;
}
int * min_index(int * beg, const size_t size) {
int * index = 0;
int min = INT_MAX;
for (size_t n = 0; n < size; n++)
if (beg[n] < min) {
min = beg[n];
index = &beg[n];
}
return index;
}
int * max_index(int * beg, const size_t size) {
int * index = 0;
int max = INT_MIN;
for (size_t n = 0; n < size; n++)
if (beg[n] > max) {
max = beg[n];
index = &beg[n];
}
return index;
}
void swap_min_max_row_matrix(int ** ptr, const size_t rows, const size_t cols) {
int temp;
int * min, * max;
size_t next = 0;
for (ptr[next]; ptr[next] < ptr[rows]; next++) {
max = max_index(ptr[next], cols);
min = min_index(ptr[next], cols);
temp = *min;
*min = *max;
*max = temp;
}
}
Надеюсь Striker все же напишет, мне лень просто так писать.
Но надо найти для начала минимум и максимум в строке, если минимум и максимум отличается, то запомнить, потом снова пробежать по строке и менять все значения с минимумом на максимум, а максимум на минимум.
И так для каждой строки в матрице
Но надо найти для начала минимум и максимум в строке, если минимум и максимум отличается, то запомнить, потом снова пробежать по строке и менять все значения с минимумом на максимум, а максимум на минимум.
И так для каждой строки в матрице
Идешь по строкам, запоминаешь номера максимального и минимального элементов. А потом меняешь местами элементы с этими индексами.
Похожие вопросы
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- .помогите пожалуйста двумерный массив на языке c++
- Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
- Что такое Двумерный массив?
- Ассемблер двумерный массив
- Двумерный массив с++ Пожалуйста =(
- Динамические двумерные массивы С++. Помогите разобраться.
- Перебор двумерного массива. Вопрос на засыпку.