Какие возможности есть по следующему заданию???
// массивы. Проинициализируйте трехмерный массив
//double dArray[4][3][3] так, как показано на рисунке и напишите фрагмент
//кода, который меняет местами значения элементов четных
//и нечетных слоев:
// было: |--------|
// / |4 4 4 |
// |--------| 4 |
// / |3 3 3 | 4 |
// |---------|3 | |
// / | 2 2 2 |3 | /
// |---------|2 |__|
// | 1 1 1 |2 | /
// | 1 1 1 |__|
// | 1 1 1 | /
// |_________|
// стало: |--------|
// / |3 3 3 |
// |--------| 3 |
// / |4 4 4 | 3 |
// |---------|4 | |
// / | 1 1 1 |4 | /
// |---------|1 |__|
// | 2 2 2 |1 | /
// | 2 2 2 |__|
// | 2 2 2 | /
// |_________|
for(int i=0; i<...; ...)
{
//Замечание: НЕ НУЖНО МОДИФИЦИРОВАТЬ ВЫРАЖЕНИЯ СПРАВА ОТ ЗНАКА РАВЕНСТВА!!!
... = dArray[i];
... = dArray[i+1];
//переставляем местами элементы i-того и i+1-ого слоев
}
Если "с добавлением недостающего кода", то, например, так
for (int i = 0; i + 1 < 4; i += 2)
{
auto &even_layer = dArray[i];
auto &odd_layer = dArray[i+1];
std::swap(even_layer, odd_layer);
}
или, чтобы абстрагироваться от константы 4
for (int i = 0; i + 1 < std::extent<decltype(dArray)>::value; i += 2)
...
Разумеется, если задаться целью вписывать код только в многоточия, то можно "скрипя сердцем" изрыгнуть что-то вроде
for (int i = 0; i + 1 < std::extent<decltype(dArray)>::value; i += 2)
{
auto dummy = dArray[i];
(std::swap(dArray[i], dArray[i + 1]), dummy) = dArray[i + 1];
}
Но я сомневаюсь, что в этом есть смысл.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости