Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов. Пример: Массив: 20 -90 15 -34 10 0 Результат: 20 15 10 -90 -34 0 Количество положительных элементов: 3
int main() {
const int size = 10;srand(time(0));
int arr[size];
int positiveCount = 0;
for (int i = 0; i < size; i++) {
arr[i] = rand() % 201 - 100;
if (arr[i] > 0)
positiveCount++;
}
std::cout << "Массив:\n";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
int startPos = 0;
int endPos = size - 1;
while (startPos < endPos) {
if (arr[startPos] <= 0) {
while (arr[endPos] <= 0 && startPos < endPos) {
endPos--;
}
if (startPos < endPos) {
std::swap(arr[startPos], arr[endPos]);
endPos--;
}
}
startPos++;
}
std::cout << "\nРезультат:\n";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << "\nКоличество положительных элементов: " << positiveCount << std::endl;
return 0;
}