C/C++
Создать функцию c++
Вычислить разницу между абсолютными значениями максимального и минимального элементов матрицы.
#include <algorithm>
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
pair<int, int> difference(int* a, int* b) {
auto[pmax, pmin] = minmax_element(a, b);
return { *pmax, *pmin };
}
int main() {
uniform_int_distribution<> uid(-999, 1000);
mt19937 gen{ random_device()() };
int matrix[5][9];
for (auto& row : matrix) for (auto& x : row) x = uid(gen);
for (const auto& row : matrix) {
for (auto x : row) cout << setw(5) << x << ' ';
puts("");
}
puts("");
auto [min, max] = difference(&matrix[0][0], &matrix[4][9]);
auto diff = abs(min) - abs(max);
cout
<< "Min: " << min << '\n'
<< "Max: " << max << '\n'
<< "Difference: " << diff << '\n';
}
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
pair<int, int> difference(int* a, int* b) {
auto[pmax, pmin] = minmax_element(a, b);
return { *pmax, *pmin };
}
int main() {
uniform_int_distribution<> uid(-999, 1000);
mt19937 gen{ random_device()() };
int matrix[5][9];
for (auto& row : matrix) for (auto& x : row) x = uid(gen);
for (const auto& row : matrix) {
for (auto x : row) cout << setw(5) << x << ' ';
puts("");
}
puts("");
auto [min, max] = difference(&matrix[0][0], &matrix[4][9]);
auto diff = abs(min) - abs(max);
cout
<< "Min: " << min << '\n'
<< "Max: " << max << '\n'
<< "Difference: " << diff << '\n';
}
#include <iomanip>
#include <ctime>
#include <iostream>
using namespace std;
template <int N, int M>
int maxabs(int (&a)[N][M]){
int max = a[0][0], min = max;
for (int i = 0, j; i < N; ++i)
for(int j = 0; j < M; ++j)
if (a[i][j] > max)
max = a[i][j];
else if (a[i][j] < min)
min = a[i][j];
return abs(max) - abs(min);
}
int main()
{
srand(time(0));
const int N = 10, M = 10;
int a[N][M];
for (int i = 0, j; i < N; cout << endl, ++i)
for(int j = 0; j < M; cout << setw(4) << (a[i][j++] = rand() % 101 - 50));
cout << maxabs(a) << endl;
}
#include <ctime>
#include <iostream>
using namespace std;
template <int N, int M>
int maxabs(int (&a)[N][M]){
int max = a[0][0], min = max;
for (int i = 0, j; i < N; ++i)
for(int j = 0; j < M; ++j)
if (a[i][j] > max)
max = a[i][j];
else if (a[i][j] < min)
min = a[i][j];
return abs(max) - abs(min);
}
int main()
{
srand(time(0));
const int N = 10, M = 10;
int a[N][M];
for (int i = 0, j; i < N; cout << endl, ++i)
for(int j = 0; j < M; cout << setw(4) << (a[i][j++] = rand() % 101 - 50));
cout << maxabs(a) << endl;
}
#include "iostream"
#include "ctime"
#include "cstdlib"
#include "cmath"
#include "algorithm"
using namespace std;
int f(int *b,int N,int M){
return abs(*max_element(b,b+N*M))-abs(*min_element(b,b+N*M));}
int main(){
const int N=5, M=6; int a[N][M], srand(time(NULL));
for(int (&i)[M]:a){for(int &j:i)cout<<(j=rand()%199-99)<<'\t'; cout<<'\n';}
cout<<"\nRes="<<f(*a,N,M)<<'\n';}
#include "ctime"
#include "cstdlib"
#include "cmath"
#include "algorithm"
using namespace std;
int f(int *b,int N,int M){
return abs(*max_element(b,b+N*M))-abs(*min_element(b,b+N*M));}
int main(){
const int N=5, M=6; int a[N][M], srand(time(NULL));
for(int (&i)[M]:a){for(int &j:i)cout<<(j=rand()%199-99)<<'\t'; cout<<'\n';}
cout<<"\nRes="<<f(*a,N,M)<<'\n';}
1. Создаёшь переменные под минимальный и максимальный элемент.
2. Заполняешь минимальный элемент числом, которое будет гарантировано больше или равно чем все элементы в матрице
3. Аналогично заполняешь максимальный числом, которое будет гарантировано меньше или равно чем все элементы в матрице.
4. Идёшь по матрице и сравниваешь каждый элемент матрицы с минимальным и максимальным числом. Если элемент меньше минимального, делаешь этот элемент минимальным числом, аналогично большим.
5. Вычисляешь разницу между числами.
Это весьма простая задача, в чем проблема - не знаешь языка? Или не знаешь как матрицу создать?
2. Заполняешь минимальный элемент числом, которое будет гарантировано больше или равно чем все элементы в матрице
3. Аналогично заполняешь максимальный числом, которое будет гарантировано меньше или равно чем все элементы в матрице.
4. Идёшь по матрице и сравниваешь каждый элемент матрицы с минимальным и максимальным числом. Если элемент меньше минимального, делаешь этот элемент минимальным числом, аналогично большим.
5. Вычисляешь разницу между числами.
Это весьма простая задача, в чем проблема - не знаешь языка? Или не знаешь как матрицу создать?
Сеня Даки
Однако стоит заметить, что с использованием стандартной библиотеки шаблонов это делается куда проще :)
float sx = std::simd::mmax(matrixA) - std::simd::mmin(matrixA);
Похожие вопросы
- Создать функцию, которая возводит число в степень.Запрещено использовать функцию возведения в степень.
- Передача в метод класса указателя на функцию C++
- Массив функции c++ помогите
- Помогите разобраться в коде функций C++
- Ошибка C2280 предпринята попытка ссылки на удаленную функцию C++
- Сделать перестановку чисел с помощью функции в C++, но у меня получается чепуха
- C++ Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool
- Помогите решить задачу, c++, функции
- СОЗДАНИЕ ФУНКЦИЙ В C++
- Помогите пожалуйста - создать 4 массива на c++