Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2011, 21:22   #11
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо!!!

Берется сначала первая матрица, производиться сдиг влево, и выводиться.
{1,2,3,4},
{1,2,3,4},
{1,2,3,4},
{1,2,3,4}
Потом вторая
{5,6,7,8},
{5,6,7,8},
{5,6,7,8},
{5,6,7,8}
Тоже производиться сдвиг влево и выводиться.
Corvette вне форума Ответить с цитированием
Старый 29.08.2011, 21:56   #12
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
#include <iostream>

using namespace std;

const int size1 = 4,
          size2 = 2;

#define decl_matrix(name) int name[size2][size1][size1]


void print_array(decl_matrix(massiv));
void rotate_left_matrix(int massiv[size1][size1]);
void rotate_left_array(int massiv[size1], int pos);


int main()
{
	decl_matrix(massiv) =
        {{{1,2,3,4},
          {1,2,3,4},
          {1,2,3,4},
          {1,2,3,4}},
         {{5,6,7,8},
          {5,6,7,8},
          {5,6,7,8},
          {5,6,7,8}}};

	cout << "Array before:" << endl;
	print_array(massiv);

	for(int i = 0; i < size2; i++)
		rotate_left_matrix(massiv[i]);

	cout << "Array after:" << endl;
	print_array(massiv);

	return 0;
}


void print_array(decl_matrix(massiv))
{
	for(int k = 0; k < size2; k++)
	{
		for(int i = 0; i < size1; i++)
		{
			for(int j = 0; j < size1; j++)
				cout << massiv[k][i][j] << " ";
			cout << endl;
		}
		cout << endl;
	}
}

void rotate_left_matrix(int massiv[size1][size1])
{
	for(int i = 0; i < size1; i++)
		rotate_left_array(massiv[i], i);
}

void rotate_left_array(int massiv[size1], int pos)
{
	int temp_arr[size1];
	for(int i = 0; i < pos; i++)
		temp_arr[size1 - pos + i] = massiv[i];
	for(int i = pos; i < size1; i++)
		temp_arr[i - pos] = massiv[i];

	for(int i = 0; i < size1; i++)
		massiv[i] = temp_arr[i];
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 29.08.2011, 22:05   #13
Corvette
Пользователь
 
Регистрация: 31.07.2011
Сообщений: 55
По умолчанию

Спасибо большое за помощь!!!!!!!! :-)
Corvette вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклический сдвиг Санеk Паскаль, Turbo Pascal, PascalABC.NET 17 26.12.2015 01:31
Как отсортировать ключи и значения в многомерном массиве? akokin PHP 8 10.01.2010 12:32
Циклический сдвиг Mish92(21-09) Помощь студентам 0 07.11.2009 21:59
сортировка в многомерном массиве LeoN PHP 8 03.06.2008 15:39
Циклический сдвиг столбцов в массиве С++ Помогите! Ладушка Общие вопросы C/C++ 10 01.05.2008 23:17