#include <iostream>
#include <iomanip>
using namespace std;
void print(int*, const size_t, const size_t);
size_t min(int*, const size_t, const size_t);
size_t max(int*, const size_t, const size_t);
void replace(int*, int*, const size_t, const size_t);
int main() {
const size_t rows = 2, cols = 3;
int m1[rows][cols] = { { 5, 7, 9 }, { 6, 2, 4 } };
int* pm1 = &m1[0][0];
cout << "\n\tMatrix 1 before replacing:\n\n"; print(pm1, rows, cols);
int m2[rows][cols] = { { 15, 17, 19 }, { 16, 12, 14 } };
int* pm2 = &m2[0][0];
cout << "\tMatrix 2 before replacing:\n\n"; print(pm2, rows, cols);
replace(pm1, pm2, rows, cols);
cout << "\n\tMatrix 1 after replacing:\n\n"; print(pm1, rows, cols);
cout << "\tMatrix 2 after replacing:\n\n"; print(pm2, rows, cols);
cin.get();
}
void replace(int* a, int* b, const size_t rows, const size_t cols) {
int index, mn = min(a, rows, cols), mx = max(a, rows, cols);
index = a[mn];
a[mn] = b[mx];
b[mx] = index;
}
void print(int* v, const size_t rows, const size_t cols) {
size_t n = 0;
while (n < rows * cols) {
++n;
cout << setw(6) << v[n - 1];
if (0 == n % cols) cout << "\n";
}
cout << "\n";
}
size_t min(int* v, const size_t rows, const size_t cols) {
size_t n = 1, index = 0;
int val = v[0];
while (n < rows * cols) {
if (val > v[n]) {
val = v[n];
index = n;
}
++n;
}
return index;
}
size_t max(int* v, const size_t rows, const size_t cols) {
size_t n = 1, index = 0;
int val = v[0];
while (n < rows * cols) {
if (val < v[n]) {
val = v[n];
index = n;
}
++n;
}
return index;
}
Другие языки программирования и технологии
Даны 2 матрицы 2х3. Нужно поменять местами наибольшее значение из 1 с наименьшим из 2. На C++
Находишь индексы максимального элемента первой и минимального второй матрицы
и меняешь их местами...
и меняешь их местами...
Похожие вопросы
- поменяйте местами наибольший элемент данного одномерного массива с первым элементом и найменьший с последним ( язык си)
- . Дан массив из N чисел. Поменять местами элементы, равноудаленные от произвольно задаваемого К-го элемента.
- У меня есть char temp[100] = "2^2+3*2"; Теперь, мне нужно увидеть на экране результат этого уравнения (2^2+3*2).
- ХЕЛП Дана квадратная матрица порядка n. на языке C или C ++
- Как поменять местами столбцы в матрице. C++
- C++ -Дана целочисленная матрица
- Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
- Написать в С++.В заданной матрице A[1:N,1:M] поменять местами следующие два элемента:
- кто может сделать прогу в C++ которая поменяет местами в каждом столбце минимальный и максимальные элементы в матрице??
- Поменять местами 2 Nod'a в TreeView C# (Visual Studio)