int r = minmax(a, b);
cout << "Сумма min " << r << ", сумма max " << b << endl;
return 0;
}
По поводу "всех объяснений" - я этого не понимаю. Написать что делает каждый оператор, зачем он тут и почему именно такой - это долгое и бессмысленное занятие, ответ будет объемом в несколько книжных страниц, но все равно толком ничего не даст. Если Вы не умеет программировать - учится надо не по ответу на задачу, а если умеете - никакое описание не нужно.
Единственная заморочка тут - передача длины массива в вызываемую функцию. В С++ с этим беда, потому обычно используют библиотечный класс Vector, где можно узнать длину массива. Вместо массива в С++ при вызове функции передается указатель на его первый элемент, поэтому информацию о длине массива получить нельзя. Так что нужно передавать еще один параметр - длину массива. Но в задании сказано, что параметра всего два и второй служит для получения максимальной из двух сумм. Но это при возвращении результата! Поэтому было принято решение при вызове функции в качестве b передать длину массива.
Объяснение:
C ++
// C ++ реализация вышеуказанного подхода
#include <bits/stdc++.h>
using namespace std;
#define N 4
// Функция для поворота матрицы на 90 градусов по часовой стрелке
void rotate90Clockwise(int a[N][N])
{
// Обходить каждый цикл
for (int i = 0; i < N / 2; i++) {
for (int j = i; j < N - i - 1; j++) {
// Меняем местами элементы каждого цикла
// по часовой стрелке
int temp = a[i][j];
a[i][j] = a[N - 1 - j][i];
a[N - 1 - j][i] = a[N - 1 - i][N - 1 - j];
a[N - 1 - i][N - 1 - j] = a[j][N - 1 - i];
a[j][N - 1 - i] = temp;
}
}
}
// Функция для матрицы печати
void printMatrix(int arr[N][N])
{
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
cout << arr[i][j] << " ";
cout << '\n';
}
}
// Код драйвера
int main()
{
int arr[N][N] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };
rotate90Clockwise(arr);
printMatrix(arr);
return 0;
}