1
0
Fork 0
Programming_Course1_Session2/15/Lab15/Lab15.cpp

97 lines
2.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}