Написать программу на языке С++(со всеми ОБЪЯСНЕНИЯМИ пожалуйста) 1. Написать функцию, которая
принимает в качестве аргументов целочисленный массив и переменную. Находит сумму четных и сумму нечетных элементов. В переменную-аргумент сохраняет максимальную из сумм. Возвращает минимальную из сумм.Ответы на вопрос
#include <iostream>
using namespace std;
int minmax(int a[], int& b) // параметр b передаем по ссылке чтобы его менять
{
int se = 0, so = 0;
for(int i = 0; i < b; i++) // при вызове функции b - размер массива
if (a[i] % 2 == 0) se += a[i];
else so += a[i];
if (se > so)
{
b = se;
return so;
}
else
{
b = so;
return se;
}
}
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
cin >> a[i];
int b = n; // обязательно записать размер массива !!!
int r = minmax(a, b);
cout << "Сумма min " << r << ", сумма max " << b << endl;
return 0;
}
По поводу "всех объяснений" - я этого не понимаю. Написать что делает каждый оператор, зачем он тут и почему именно такой - это долгое и бессмысленное занятие, ответ будет объемом в несколько книжных страниц, но все равно толком ничего не даст. Если Вы не умеет программировать - учится надо не по ответу на задачу, а если умеете - никакое описание не нужно.
Единственная заморочка тут - передача длины массива в вызываемую функцию. В С++ с этим беда, потому обычно используют библиотечный класс Vector, где можно узнать длину массива. Вместо массива в С++ при вызове функции передается указатель на его первый элемент, поэтому информацию о длине массива получить нельзя. Так что нужно передавать еще один параметр - длину массива. Но в задании сказано, что параметра всего два и второй служит для получения максимальной из двух сумм. Но это при возвращении результата! Поэтому было принято решение при вызове функции в качестве b передать длину массива.

Я могу помочь вам с написанием программы на языке C++. Вот пример кода, который решает вашу задачу:
```c++ // Функция, которая принимает в качестве аргументов целочисленный массив и переменную int sumEvenOdd(int arr[], int n, int &maxSum) { // Объявляем две переменные для хранения суммы четных и нечетных элементов int sumEven = 0, sumOdd = 0; // Проходим по всем элементам массива for (int i = 0; i < n; i++) { // Если элемент четный, то прибавляем его к сумме четных if (arr[i] % 2 == 0) { sumEven += arr[i]; } // Иначе прибавляем его к сумме нечетных else { sumOdd += arr[i]; } } // Находим максимальную из сумм и сохраняем ее в переменную-аргумент maxSum = (sumEven > sumOdd) ? sumEven : sumOdd; // Возвращаем минимальную из сумм return (sumEven < sumOdd) ? sumEven : sumOdd; } ```
Надеюсь, это вам поможет. Если у вас есть еще вопросы, я буду рад ответить.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
