#include <iostream> //for cin
#include <random> //this
#include <math.h> //for floor
using namespace std;
double fRand(double fMin, double fMax)
{//random gen for double from stackoverflow
double f = (double)rand() / RAND_MAX;
return fMin + f * (fMax - fMin);
}
class array_member {
public:
double value;
bool added;
};
int main() {
int seed = static_cast<int>(time(0));
srand(seed);
int arrSize = 0;
int cond_C = 0;
int val_cond_C = 0;
int last_negative_element_index = 0;
int val_cond_after_last = 0;
array_member arr[100];
do { //define array size
cin >> arrSize;
}
while (arrSize>100&&arrSize<=0);
cin >> cond_C;
cout.precision(6);
double max = -1000;
int max_index = 0;
for (int i=0;i<arrSize;i++) {
//arr.push_front();
arr[i].added = false;
if (rand() % 100 > 70)
arr[i].value = fRand(-100,100);
else arr[i].value = rand() % 200-100;
//value set
if (arr[i].value>max) {
max = arr[i].value; //finding max arr value
max_index = i;
}
arr[max_index].added = true;
cout << arr[i].value << endl;
if (arr[i].value < cond_C) val_cond_C++;
if (arr[i].value < 0) last_negative_element_index = i;
}
for (int i=last_negative_element_index;i<arrSize;i++) {
if (arr[i].value > 0 && arr[i].value == floor(arr[i].value)) val_cond_after_last++;
}
cout << "Elements lower than C: " << val_cond_C << endl;
cout << "Natural array elements higher than 0 after last negative element: " <<val_cond_after_last<<endl;
cout << "Modified array: " << endl << max << endl;
for (int i=0;i<arrSize;i++) {
if (!arr[i].added && i!=max_index && arr[i].value >= max*0.8 && arr[i].value <=max*1.2) {
cout << arr[i].value << endl;
arr[i].added = true;
}
}
for (int i=0;i<arrSize;i++)
if (!arr[i].added) cout << arr[i].value << endl;
return 0;
}