Задача на нахождение суммы и преобразование массива
Есть задача, нужно:
- Найти сумму элементов массива, расположенных после первого положительного элемента;
- преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале
[0, 10]
, а потом — все остальные.- Порядок следования элементов не изменять.
Моя попытка:
#include <iostream>
#include <ctime>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
srand(time(NULL));
const int SIZE = 10;
double arr[SIZE];
int a, b;
int n;
int choose_number;
cout << "ВВедите количество элементов массива n:";
cin >> n;
cout << "Если хотите ввести массив самостоятельно-0,рандомно-1"<<endl;
cin >>choose_number;
if (choose_number == 0)
{
cout << "Введите вещественные элементы массива:" << endl;
for (int i = 0; i < n; i++)
{
cout << i << "-й элемент массива = " << endl;
cin >> arr[i];
}
}
else
{
cout << "Введите диапазон значений а,b:"<<endl;
cin >> a >> b;
for (int i = 0; i < n; i++)
{
arr[i] =(((double)rand()/RAND_MAX)*(b-a)+a);
cout <<i << "-й элемент массива = " << arr[i] << endl;
}
}
double max_el;
max_el = fabs( arr[0]);
int imax = 0;
for (int i =0; i < n; i++)
{
if( fabs(arr[i]) >max_el )
{
max_el = fabs(arr[i]);
imax = i;
}
}
cout << "Номер максимального элемента массива:" << imax+1<< endl;
double summ_el = 0;
for (int i = 0; i < n; i++)
{
if (arr[i] > 0)
{
summ_el += arr[i];
i++;
}
}
cout << "Сумма элементов массива после первого положительного элемента:" << summ_el << endl;
return 0;
}
Но у меня не получается найти сумму