#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);
}
#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;
}
Объяснение:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
const int n = 30;
double a[n];
double max, min;
srand(time(0));
for (int i = 0; i < n; i++) {
a[i]=-20 + (51.0 / RAND_MAX) * rand();
cout << fixed << setw (7) << setprecision (2) << a[i];
}
cout <<"\n";
max = a[0]+a[n-1];
min = a[0]*a[n/2];
for (int i = 1; i<n/2; i++){
if (a[i]+a[n-i-1] > max) max = a[i]+a[n-i-1];
if (a[i]*a[n/2+i] < min) min = a[i]*a[n/2+i];
}
cout << "max = " << max << "\n";
cout << "min = " << min << "\n";
return 0;
}
Пример (для n=10):
-19.29 30.99 -15.37 26.41 3.65 13.45 29.28 4.28 30.51 -10.36
max = 61.50
min = -259.43