Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с массивом

Никита Виноградкин Ученик (99), открыт 3 недели назад
Троинициализируй двумерный массив при объявлении любыми значениями (рекомендуем использовать быструю инициализацию). Размерность массива должна быть 3х4 (высота-ширина). Переверни лассив зеркально относительно центральной строки. Тапример, ты заполнил массив таким образом: (1,2,3,4}, (4,5,6,71, (7,8,9,0} Гогда зеркально перевернутый массив будет выглядеть вот так: (7,8,9,0), (4,5,6,7}, (1,2,3,41
1 ответ
Сергей Гений (59759) 3 недели назад
если истинный двумерный массив имеется ввиду type[n][m] то так:
 #include <iostream> 
void revert(int* n)
{
for (int i = 0; i < 4; i++)
{
int tmp = n[i]; //простой свап через доп переменную
n[i] = n[8 + i]; //в одномерном виде тоже самое что n[0][i] = n[2][i]
n[8 + i] = tmp;
}
}
void print(int* n)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++) std::cout << n[i * 4 + j] << " "; //n[i*m + j] где m - кол-во столбцов, тоже что n[i][j]
std::cout << "\n";
}
}
int main()
{
int n[3][4] = { {1,2,3,4},{4,5,6,7},{7,8,9,0} }; //по факту одномерный
print(*n); // *n => передаем в функции как одномерный (по адресу первого элемента)
revert(*n);
std::cout << "\n\n";
print(*n);
}
Похожие вопросы