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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2010, 09:50   #1
zgest
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 15
По умолчанию Операция с двумерными массивами

Есть двумерные массивы:

double First[6][6]={{1,2,3,1,2,3}, и double Second[2][2]={0}
{4,5,6,4,5,6},
{7,8,9,7,8,9},
{1,2,3,1,2,3},
{4,5,6,4,5,6},
{7,8,9,7,8,9}}

Нужно написать ф-цию, которая берет левый верхний квадрат (со стороной 3) значений из массива First:
1,2,3
4,5,6
7,8,9
складывает значения делит на количество элементов (девять). Получившееся число записывает в Second[0][0]. Затем берет правый верхний квадрат (значения могут быть разными, это просто пример):
1,2,3
4,5,6
7,8,9
делает тоже самое и записывает в Second[0][1]... И так далее, пока не пройдет все четыре квадрата. У меня что-то никак не получается. Заранее благодарен.
zgest вне форума Ответить с цитированием
Старый 02.02.2010, 10:38   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Составляем табличку 4x6. Первые две колонки будут - все возможные комбинации индексов для матрицы Second. Третья и четвёртая колонки - min. и max. номера строк, пятая и шестая - min. и max. номера столбцов, ограничивающих нужную подматрицу в матрице First для конкретной пары индексов из первых двух столбцов.

row2 col2 row1min row1max col1min col1max
0 0 0 2 0 2
0 1 0 2 3 5
1 0 3 5 0 2
1 1 3 5 3 5

А теперь "тупо смотрим, что к чему" в этой "картине мироздания", пока не додумаемся, как запрограммировать зависимость row1min и row1max от row2, а col1min и col1max от col2

Пардон, "лишние" пробелы между числами в строке съедаются даже для FixedSys.
Vago вне форума Ответить с цитированием
Старый 02.02.2010, 11:46   #3
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Вот пример с Second[0][0]
Код:
int sum=0;
	for(int i=0; i<3; i++)
		for(int j=0; j<3; j++)
			sum+=First[i][j];
	Second[0][0]=sum/9;
Cpluser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 задачи с двумерными массивами (паскаль) andrei_sx Помощь студентам 1 03.06.2009 20:06
работа с двумерными массивами curly182 Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2009 17:56
Подпрограммы(работа с двумерными массивами) DimoniusX Помощь студентам 0 15.04.2009 09:52
Алгоритмы работы с двумерными массивами cudalover Помощь студентам 10 18.01.2009 13:00
Работа с двумерными массивами KJIOyH Помощь студентам 4 03.11.2007 20:03