не понимаю в чём ошибка
Мой код:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,r,s=0,p=1,min=-1000000000,max=1000000000,imin,imax;
cin>>n;
vector <int> v;
for (int i=0;i<n;i++){
cin>>r;
v.push_back(r);
}
for (int i=0;i<n;i++){
if (v[i]>0){
s+=v[i];
}
if (min>v[i]){
min=v[i];
imin=i;
}
if (max<v[i]){
max=v[i];
imax=i;
}
}
if(imin<imax){
for (int i=imin+1;i<imax;i++){
p*=v[i];
}
}else{
for (int i=imax+1;i<imin;i++){
p*=v[i];
}
}
cout<<s<<" "<<p;
return 0;
}
Коротко: нужно вывести сумму положительных и произведение между минимальным и максимальным числом мин и макс в произведении не включительно
Полный текст задания:
Домашнее задание. Петя успевает по математике лучше всех в классе, поэтому учитель дал ему сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти, где в заданной последовательности находятся максимальный и минимальный элемент, и вычислить произведение чисел, расположенных в этой последовательности между ними. Также известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз и не являются соседними. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А вам слабо?
Входные данные
В первой строке записано единственное число N (N⩽15) — количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелами. Каждое из чисел во входном файле, в том числе и N, не превышает 20 по абсолютной величине.
Выходные данные
В единственную строку нужно вывести два числа, разделённые пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 106.
Ответы (1 шт):
Поменяйте первоначальные значения min и max наоборот :
int min=1000000000,max=-1000000000;