Задача заключается в том, что дан массив действительных чисел a1, a2, ..., a2n. Необходимо получить a1, a2n, a2, a2n -1, ..., an, an + 1.
Говоря простым языком, если дан массив из пяти чисел, например: 1 2 3 4 5
,
то в результате необходимо получить: 1 5 2 4 3
.
Пытался отсортировать массив следующим образом, но что-то пошло не так:
for (int i = 0; i <= arr_size / 2.0; i++) {
double temp = arr[i + 1];
arr[i + 1] = arr[arr_size - i];
arr[arr_size - i] = temp;
}
Если я верно понял ваш алгоритм, то ваш алгоритм заключается в следующем:
У вас есть исходный массив. Далее вам нужно его преобразовать следующим образом: читать числа из исходного массива поочередно то с начала массива, то с конца.
Вот код, который будет делать то, что вам нужно(без создания нового массива, путем модификации существующего).
#include <iostream>
using namespace std;
int main() {
int a[] = {1, 2, 3, 4, 5};
const int arrsize = sizeof(a) / sizeof(int);
for (int i = 0; i < arrsize/2; ++i)
{
int temp = a[arrsize - 1];
for (int j = arrsize - 1; j > (i * 2 + 1); --j)
{
a[j] = a[j - 1];
}
a[i * 2 + 1] = temp;
}
for (int i = 0; i < arrsize; ++i)
std::cout << a[i];
std::cout << std::endl;
}
Вывод будет: 1,5,2,4,3
.
Для массива большей длины также будет работать.
Попробуй вместо arr[arr_size-i]
поставить arr[arr_size-1]
Предложу и свою версию:
int main(int argc, char *argv[])
{
std::cout << "Input number of members\n";
int nMembers;
std::cin >> nMembers;
std::vector<int> arr(nMembers, 0);
std::cout << "Input array\n";
for (auto &i : arr) {
std::cin >> i;
}
std::vector<int> nov(arr.size(), 0);
bool val = false;
for (auto i = arr.begin(), j = --arr.end(), l = nov.begin(); l != nov.end(); ++l) {
if (!val) {
*l = *i;
i++;
val = true;
}
else {
*l = *j;
j--;
val = false;
}
}
for (const auto &i : nov) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Допустим в ф-ции я создаю allocator, он распределяет память, потому деалацирует её, но представим что я забыл деалацировать какой-то отдельный...
Нужно написать программу для шифрования и дешифрования файла за указанным именему меня не получается зашифровать файл поскольку прогамма...
Есть список ul li, который хранит в себе данные вписанные пользователем в формыДанные добавляются в li и в localStorage объект(данные не пропадают...