Первые два задания я кое как сделала, не получается сжать массив и заполнить нулями
вот задание;
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
- Максимальный элемент массива.
- Сумму элементов, расположенных до последнего положительного элемента.
- Сжать этот массив, удалив из него все элементы, модуль которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями
вот мой
#include <iostream>
using namespace std;
int main()
{
int i,j, k, a, b;
const int N=5;
double mas[N];
double max;
double sum;
// массив
for (i=0; i<N; i++)
{
cout << "mas[" << i << "]= ";
cin >> mas[i];
// сразу нахождение посл + элемента
if (mas[i] > 0)
k = i;
}
// поиск максимального элемента
for (int i = 0; i < N; ++i)
if (mas[i] > max)
max = mas[i];
cout << "Максимальный элемент = " << max << endl;
// Сумма
sum = 0;
for (int i = 0; i < k; i++)
{
sum += mas[i];
}
cout << "Сумма элементов до последнего положительного элемента: " << sum << endl;
//сжатие массива на инт [a,b]
cout << "Введите значение a "; cin >> a;
cout << "Введите значение b "; cin >> b;
for (; i < N; i++)
{
if (mas[i] < a || mas[i] > b)
mas[i - j] = mas[i];
else
j++;
}
for (i = N - j; i < N; i++)
mas[i] = 0;
cout << "сжатый mas:= "<<endl;
for (i=0; i<N; i++)
{
cout << "mas[" << i << "]= " << mas[i] << endl;
}
return 0;
}