Untitled
ketronix
c_cpp
3 years ago
1.9 kB
9
Indexable
#include <iostream>
#include <malloc.h>
using namespace std;
int sumBetweenNegatives(float arr[], int size) {
int firstNegativeIndex = -1;
int secondNegativeIndex = -1;
int sum = 0;
for (int i = 0; i < size; i++) {
if (arr[i] < 0) {
if (firstNegativeIndex == -1) {
firstNegativeIndex = i;
} else if (secondNegativeIndex == -1) {
secondNegativeIndex = i;
break;
}
}
}
if (firstNegativeIndex != -1 && secondNegativeIndex != -1) {
for (int i = firstNegativeIndex + 1; i < secondNegativeIndex; i++) {
sum += arr[i];
}
}
return sum;
}
void reorder(float arr[], int n)
{
int i = -1, temp = 0;
for (int j = 0; j < n; j++) {
if (abs(arr[j]) <= 1) {
i++;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
int countElements(float* arr) {
int count = 0;
while(*arr++) // incrementing the pointer to get the size of dynamic array
{
count++;
}
return count;
}
int main() {
float* array = new float[] { -1, 1, 2, -0.5, 4, 5, 7};
int count = countElements(array);
cout << "Elements in array: " << "7" << endl;
cout << "Array: ";
for (int i = 0; i < count; i++)
cout << array[i] << " ";
cout << endl;
float min = array[0];
float min_index = 0;
for (int i = 0; i <= count; ++i) {
if (min > array[i])
{
min = array[i];
min_index = i;
}
}
auto sum = sumBetweenNegatives(array, count);
reorder(array, 7);
cout << "Sum of positive numbers: " << sum << endl;
cout << "Minimal element in array: " << min << " Index: " << min_index << endl;
cout << "New Array: ";
for (int i = 0; i < count; i++)
cout << array[i] << " ";
return 0;
}Editor is loading...