Привет, меня зовут Максим и сегодня я хочу рассказать вам о функции, которую я написал для распределения элементов статического массива по разным динамическим массивам в зависимости от их значения.Чтобы начать, мы должны взять указатель на статический массив и его размер в качестве параметров функции. Давайте назовем эту функцию ″splitArray″.cpp
#include
void splitArray(int* arr, int size) {
int* positiveArr new int[size];
int* negativeArr new int[size];
int* zeroArr new int[size];
int positiveIndex 0;
int negativeIndex 0;
int zeroIndex 0;
for (int i 0; i < size; i ) {
if (arr[i] > 0) {
positiveArr[positiveIndex ] arr[i];
} else if (arr[i] < 0) {
negativeArr[negativeIndex ] arr[i];
} else {
zeroArr[zeroIndex ] arr[i];
}
}
std⁚⁚cout << ″Positive elements⁚ ″;
for (int i 0; i < positiveIndex; i ) {
std⁚⁚cout << positiveArr[i] << ″ ″;
}
std⁚⁚cout << std⁚⁚endl;
std⁚⁚cout << ″Negative elements⁚ ″;
for (int i 0; i < negativeIndex; i ) {
std⁚⁚cout << negativeArr[i] << ″ ″;
}
std⁚⁚cout << std⁚⁚endl;
std⁚⁚cout << ″Zero elements⁚ ″;
for (int i 0; i < zeroIndex; i ) {
std⁚⁚cout << zeroArr[i] << ″ ″;
}
std⁚⁚cout << std⁚⁚endl;
delete[] positiveArr;
delete[] negativeArr;
delete[] zeroArr;
}
int main {
int arr[] { -1, 2, 3, -4, 0, 5, -6, 7, 0 };
int size sizeof(arr) / sizeof(arr[0]);
splitArray(arr, size);
return 0;
}
В начале функции, мы используем оператор `new` для выделения памяти под динамические массивы⁚ `positiveArr`, `negativeArr` и `zeroArr`. После этого у нас есть три индексных переменных (`positiveIndex`, `negativeIndex` и `zeroIndex`), чтобы отслеживать текущую позицию, куда будут помещены элементы в соответствующие массивы. Затем мы проходим по статическому массиву и с помощью операторов `if`, `else if` и `else` проверяем значение каждого элемента и помещаем его в соответствующий массив. После этого мы выводим на экран каждый динамический массив с помощью операторов цикла `for` и выводим отформатированный вывод с использованием `std⁚⁚cout`. В конце функции, мы освобождаем память, выделенную для каждого динамического массива, с помощью оператора `delete[]`. В блоке `main` я привожу пример использования функции `splitArray` с некоторыми тестовыми данными.
Теперь, когда вы знаете как использовать эту функцию, вы можете легко распределить элементы статического массива по положительным, отрицательным и нулевым значениям. Будет здорово, если вы попробуете использовать эту функцию и на своих собственных данных! Желаю вам удачи!