Предмет: Информатика, автор: sapognikovalexei

Программа на C++
СДЕЛАТЬ С ИСПОЛЬЗОВАНИЕМ VECTOR!!!

Петя успевает по математике лучше всех в классе, поэтому учитель задал ему сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти где в заданной последовательности находятся максимальный и минимальный элемент и вычислить произведение чисел, расположенных в этой последовательности между ними. Так же известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз и не являются соседними. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А Вам слабо?


Входные данные


В первой строке записано единственное число N (N≤15) — количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелом. Каждое из чисел во входном файле, в том числе и N, не превышает 20 по абсолютной величине.


Выходные данные


В единственную строку нужно вывести два числа, разделенных пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 106.

Приложения:

Ответы

Автор ответа: 1983skdjfhal
3

Ответ:

#include <iostream>

#include <vector>

using namespace std;

int main()

{

   int s = 0, l = 1, n;

   cin >> n;

   vector <int> v(n);

   for (int i = 0; i < n; ++i)

   {

       cin >> v[i];

       if (v[i] > 0)

       {

           s += v[i];

       }

   }

   int imn = 0, imx = 0;

   for (int i = 0; i < n; ++i)

   {

       if (v[i] < v[imn])

       {

           imn = i;

       }

       if (v[i] > v[imx])

       {

           imx = i;

       }

   }

   if (imn > imx)

       {

           swap (v[imn], v[imx]);

       }

   for (int i = imn; i < imx; i++)

   {

       if (v[i] > 0)

       {

           l *= v[i];

       }

   }

   cout << s << " " << l;

   return 0;

}

Объяснение:

Похожие вопросы
Предмет: Українська мова, автор: syamkova
Предмет: Другие предметы, автор: Руссачка