Вопрос задан 24.06.2023 в 23:28. Предмет Информатика. Спрашивает Захаров Алексей.

С++ Домашнее задание Петя успевает по математике лучше всех в классе, поэтому учитель задал ему

сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти где в заданной последовательности находятся максимальный и минимальный элемент и вычислить произведение чисел, расположенных в этой последовательности между ними. Так же известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз и не являются соседними. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А Вам слабо? Входные данные В первой строке записано единственное число N (N≤15) — количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелом. Каждое из чисел во входном файле, в том числе и N, не превышает 20 по абсолютной величине. Выходные данные В единственную строку нужно вывести два числа, разделенных пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 106. Примеры Ввод Вывод 5 -1 -10 2 6 7 15 12
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Голощапова Юлианочка.

#include <iostream>

#include <vector>

using namespace std;

int pos_sum(vector<int> &v){

   int res = 0;

   for(auto &i : v)

       res += i * (i > 0);

   return res;

}

int min_max_mult(vector<int> &v){

   int res = 1;

   pair<int,int> mn,mx;

   mn = {v[0],0};

   mx = mn;

   for(int i = 1; i < v.size(); i++){

       if(v[i] > mx.first){

           mx.first = v[i];

           mx.second = i;

       }

       if(v[i] < mn.first){

           mn.first = v[i];

           mn.second = i;

       }

   }

   int st = min(mn.second, mx.second), fn = max(mn.second,mx.second);

   for(int i = st + 1; i < fn; i++)

       res *= v[i];

   return res;

}

int main(){

   int n;

   cin >> n;

   vector<int> a(n);

   for(auto &i : a) cin >> i;

   cout << pos_sum(a) << " " << min_max_mult(a);

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется написать программу на языке C++. Программа должна считать входные данные, найти сумму положительных элементов, а также найти максимальный и минимальный элементы и вычислить произведение чисел, расположенных между ними. Вот пример решения:

cpp
#include <iostream> #include <vector> int main() { int N; std::cin >> N; // Считываем количество элементов массива std::vector<int> arr(N); // Считываем элементы массива for (int i = 0; i < N; i++) { std::cin >> arr[i]; } int sum = 0; int min_idx = -1, max_idx = -1; // Инициализируем минимальный и максимальный элементы int min_element = 21, max_element = -21; // Находим сумму положительных элементов, минимальный и максимальный элементы for (int i = 0; i < N; i++) { if (arr[i] > 0) { sum += arr[i]; } if (arr[i] < min_element) { min_element = arr[i]; min_idx = i; } if (arr[i] > max_element) { max_element = arr[i]; max_idx = i; } } int product = 1; // Вычисляем произведение чисел между минимальным и максимальным элементами if (min_idx < max_idx) { for (int i = min_idx + 1; i < max_idx; i++) { product *= arr[i]; } } else { for (int i = max_idx + 1; i < min_idx; i++) { product *= arr[i]; } } std::cout << sum << " " << product << std::endl; return 0; }

Этот код сначала считывает данные, затем находит сумму положительных элементов, минимальный и максимальный элементы, и, наконец, вычисляет произведение чисел между минимальным и максимальным элементами. Результат выводится на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос