97 lines
2.4 KiB
C++
97 lines
2.4 KiB
C++
#include <iostream>
|
||
#include <windows.h>
|
||
using namespace std;
|
||
|
||
|
||
int findMinIndex(double* arr, int size) {
|
||
int minIndex = 0;
|
||
|
||
for (int i = 1; i < size; i++) {
|
||
if (arr[i] < arr[minIndex]) {
|
||
minIndex = i;
|
||
}
|
||
}
|
||
|
||
return minIndex;
|
||
}
|
||
|
||
int findMaxIndex(double* arr, int size) {
|
||
int maxIndex = 0;
|
||
|
||
for (int i = 1; i < size; i++) {
|
||
if (arr[i] > arr[maxIndex]) {
|
||
maxIndex = i;
|
||
}
|
||
}
|
||
|
||
return maxIndex;
|
||
}
|
||
|
||
void swapMinMax(double* arr, int size) {
|
||
int minIndex = findMinIndex(arr, size);
|
||
int maxIndex = findMaxIndex(arr, size);
|
||
|
||
double temp = arr[minIndex];
|
||
arr[minIndex] = arr[maxIndex];
|
||
arr[maxIndex] = temp;
|
||
}
|
||
|
||
int main() {
|
||
|
||
SetConsoleOutputCP(CP_UTF8);
|
||
|
||
int n, i;
|
||
double* arr;
|
||
|
||
cout << "Введіть кількість елементів послідовності: ";
|
||
cin >> n;
|
||
|
||
arr = new double[n];
|
||
|
||
for (i = 0; i < n; i++) {
|
||
cout << "Введіть " << i + 1 << "-й елемент: ";
|
||
cin >> arr[i];
|
||
}
|
||
|
||
// Шукаємо перше від'ємне число
|
||
int firstNegativeIndex = -1;
|
||
for (i = 0; i < n; i++) {
|
||
if (arr[i] < 0) {
|
||
firstNegativeIndex = i;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (firstNegativeIndex == -1) {
|
||
cout << "У послідовності немає від'ємних чисел." << endl;
|
||
return 0;
|
||
}
|
||
|
||
// Виділяємо пам'ять для нового масиву
|
||
int new_size = n - firstNegativeIndex - 1;
|
||
double* new_arr = new double[new_size];
|
||
|
||
// Копіюємо елементи від першого від'ємного числа в новий масив
|
||
for (i = firstNegativeIndex + 1; i < n; i++) {
|
||
new_arr[i - firstNegativeIndex - 1] = arr[i];
|
||
}
|
||
|
||
// Виводимо новий масив
|
||
cout << "Новий масив: ";
|
||
for (i = 0; i < new_size; i++) {
|
||
cout << new_arr[i] << " ";
|
||
}
|
||
cout << endl;
|
||
|
||
// Міняємо місцями мінімальний та максимальний елементи в новому масиві
|
||
swapMinMax(new_arr, new_size);
|
||
|
||
// Виводимо новий масив
|
||
cout << "Новий масив зі зміненими місцями мінімального та максимального елементів: ";
|
||
for (i = 0; i < new_size; i++) {
|
||
cout << new_arr[i] << " ";
|
||
}
|
||
cout << endl;
|
||
|
||
return 0;
|
||
} |