КС
Каракулин Сергей

C++ одномерный массив

В одномерном массиве состоящем из N вещественных элементов вычислить:
1) Сумму элементов массива с отрицательными номерами;
2) Сумму элементов массива, расположенных между первым и последним отрицательными элементами.
3) Сжать массив, удалив из него элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.

Игорь
Игорь

1) Пусть будет "сумма отрицательных элементов".

#include
#include
#include
#include
#include
#include

using namespace std;

int main() {
srand(time(0));
int n;
cout << "n? ";
cin >> n;
double *a = new double[n], *e = a + n;
generate_n(a, n, [](){ return (rand() % 101 - 50) / 10.0; });
cout << "массив: \n";
auto oit = ostream_iterator(cout, " ");
copy(a, e, oit);
auto sn = accumulate(a, e, 0.0,
[](double s, double e){ return s + (e < 0? e : 0); });
cout << "\nсумма отрицательных элементов: " << sn;
auto op = [](double e){ return e < 0; };
auto f = find_if(a, e, op) + 1;
if (f != a + n) {
typedef reverse_iterator rit;
auto l = find_if(rit(e), rit(a), op).base() - 1;
auto s = f < l? accumulate(f, l, 0.0) : 0.0;
cout << "\ncумма элементов м/у первым и последним отрицательными: " << s;
}
auto ne = remove_if(a, e, [](double e){ return abs(e) < 1; });
fill(ne, e, 0);
cout << "\nизмененный массив: \n";
copy(a, e, oit);
cout << endl;
}

ОЕ
Ольга Ерискина

Отрицательными номера (индексы массива) быть не могут. Они могут быть только целыми числами >= 0.

Остальное - поня. Делается очень просто.

Похожие вопросы
Одномерный массив в языке С
c++ задачка про одномерный статический массив
Одномерный массив большого размера
Одномерный массив в многомерный PHP
visual basic одномерный массив
что такое одномерный и двумерный массив?
Программа delphi Одномерный массив
задача одномерный массив
Составить одномерный массив
Задача на одномерный массив