C/C++

C++ Нужен код c++ с массивов.

Вводится число n, а затем n элементов массива. Нужно использовать динамическое выделение памяти при помощи new. В массиве нужно поменять местами минимальный и максимальный элемент и вывести полученный массив, при помощи 2 циклов for
 int * foo; 
foo = new (nothrow) int [5];
if (foo == nullptr) {
// error assigning memory. Take measures.
}
https://cplusplus.com/doc/tutorial/dynamic/
Евгений Францкевич
Евгений Францкевич
26 776
Лучший ответ
 #include  
#include
using namespace std;
int main() {
size_t n;
cin >> n;
auto box = new int[n];
for (size_t i = 0; i < n; ++i) cin >> box[i];
auto [a, b] = minmax_element(box, box + n);
iter_swap(a, b);
for (size_t i = 0; i < n; ++i) cout
Если надо использовать не более двух циклов for, то надо действовать весьма хитро:
#include <iostream>
using namespace std; int main()
{ int i, n, max = -2147483648, min = 2147483647;
cout << "n: "; cin >> n; int *a = new int [n];
for (i = 0; i < n; i++) { cin >> a[i];
if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; }
for (i = 0; i < n; i++) { if (a[i] == min) { a[i] = max;
cout << i + 1 << ") " << a[i] << endl; } else
if (a[i] == max) { a[i] = min; cout << i + 1
<< ") " << a[i] << endl; } else cout << i + 1
<< ") " << a[i] << endl; } delete [] a;
cin.get(); cin.get(); return 0; }
Это для четырёхбайтных знаковых целых чисел. Если минимальных или максимальных элементов больше одного, то все минимумы меняются на максимумы и наоборот: всё элементы с наибольшими значениями приобретают наименьшие значения.
 #include  
using namespace std;

int main() {
uint32_t size;
//ввод размера
cin >> size;
//создание массива инт нужного размера
int* arr = new int[size];
//заполнение массива
for (int i = 0; i < size; i++) cin >> arr[i];
//начальные значения индексов мин и мах элементов
int max = 0, min = 0;
//нахождение минимального индекса
for (int i = 0; i < size; i++) if (arr[min] > arr[i]) min = i;
//нахождение максимального индекса
for (int i = 0; i < size; i++) if (arr[max] < arr[i]) max = i;
//перестановка индексов мин и мах
swap(arr[min], arr[max]);
cout
Denis Urzhuntsev
Denis Urzhuntsev
51 416
Владимир Целуйко Вы мой спаситель, благодарствую)