Задан массив из k символов. Вычислить сумму S первых 20 отрицательных элементов массива, кратных 5. Удалить из массива элементы, значения которых равны по абсолютному значению S.
Вот версия программы, которая выполняет нахождение суммы и ищет элементы, по модулю равные S, но 29 строке нет никакого тела после if, потому что не представляю, как удалить из array.
#include <iostream>
#include <array>
#include <cstdlib>
using namespace std;
int main(){
setlocale (0,"Rus");
int i,j=0,sum=0;
const int k=40;
array <int, k> arr={}; // Создается массив, все элементы которого инициализированы нулями
for(i=0;i<k;i++){
arr[i]=-200+rand()%300;
cout<<arr[i]<<endl;
}
for(i=0;i<k,j<20;i++){
if(arr[i]<0&&arr[i]%5==0)
sum+=arr[i]; // Сумма 20 отрицательных элементов
j++;
}
for(i=0;i<k;i++){
if(arr[i]==sum||arr[i]==-sum)
// arr[i]
}
return 0;
}
arrayимеет фиксированный размер, задающийся на этапе компиляции, и не поддерживает операцию удаления. Если надо удалять, то используйтеvector. – user7860670 May 23 '18 at 18:38using seq_array = std::vector<int>;и дело в шляпе. – KoVadim May 25 '18 at 06:59