1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include <iostream>
- using namespace std;
- int main(){
- int size, negative_counter, positive_counter, element_counter;
- negative_counter = positive_counter = element_counter = 0;
- // ввод размера массива пока размер не будет больше 0
- while (true){
- cout << "Input size of array: " << endl;
- cin >> size;
- if (size < 1){
- cout << "The size of array can't be less than 1." << endl;
- cout << "---------------------------------------" << endl;
- }
- else {
- cout << "---------------------------------------" << endl;
- break;
- }
- }
- int *array = new int [size]; // инициализация динамического массива чисел с размером [size]
- // ввод массива
- cout << "Input array's elements: " << endl;
- for (int i = 0; i < size; i++){
- cin >> array[i];
- }
- cout << "---------------------------------------" << endl;
- // вывод массива
- cout << "Your array:" << endl << "| ";
- for (int i = 0; i < size; i++){
- cout << array[i] << " | ";
- }
- cout << endl << "---------------------------------------" << endl;
- // подсчёт отрицательных и не отрицательных элементов
- for (int i = 0; i < size; i++){
- if (array[i] < 0){
- negative_counter++;
- }
- else {
- positive_counter++;
- }
- }
- // проверка пограничных случаев
- if (negative_counter <= 0){ // если нет отрицательных элементов для вывода, то
- cout << "There are no negative elements in the array to delete." << endl; // выводим сообщение об ошибке
- delete[] array; // Очистка ОЗУ от динамического массива
- exit(0); // останавливаем программу
- }
- if (positive_counter < 1){ // если нет положительных элементов для вывода, то
- cout << "There are no positive elements in the array to output." << endl; // выводим сообщение об ошибке
- delete[] array; // Очистка ОЗУ от динамического массива
- exit(0); // останавливаем программу
- }
- int *result_array = new int [size - negative_counter]; // инициализация динамического массива положительных чисел с размером [negative_counter]
- for (int i = 0; i < size; i++){
- if (array[i] >= 0){
- result_array[element_counter] = array[i];
- element_counter++;
- }
- }
- // вывод массива-результата
- cout << "Result array:" << endl << "| ";
- for (int i = 0; i < element_counter; i++){
- cout << result_array[i] << " | ";
- }
- cout << endl;
- delete[] array;
- delete[] result_array;
- return 0;
- }
|