Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вывод членов матрицы по спирали - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке http://www.cyberforum.ru/cpp-beginners/thread1068191.html
как написать собственный с++ класс для ввода и вывода строки, подсчета количества символов в строке
C++ Сортировка включением блин не сильно розбираюсь на С++ нужна помощь http://www.cyberforum.ru/cpp-beginners/thread1068189.html
C++ Непросто написанный условный оператор
Привет! Есть задача по отображению количеству отрицательных чисел. Вот код: int main() { int f, s, t; int n = 0; cout << "Input three numbers: " << endl; ...
Маленькая конструкции с if else C++
Доброе время суток, товарищи! У меня возник вопрос, как мне в кострукции с if else сделать так, чтобы else были все другие слова, кроме тех, которые в if? #include <iostream> using namespace std;...
C++ структура точки в плоскости http://www.cyberforum.ru/cpp-beginners/thread1068151.html
создать структуру для работы с точками на плоскости. необходимо определить следующее 1)создать точку по координатам 2)вывод точки в виде "(х,у)" 3)найти расстояние между точками 4)найти площадь...
C++ Кодирование-декодирование изображений Нужна программа с++, которая кодирует изображение в изображение(и обратно), используя при этом 2 младших бита. Есть программа, которая (по идеи) использует 3 младших бита, но при проверке... подробнее

Показать сообщение отдельно
gunslinger
случайный прохожий
1140 / 758 / 193
Регистрация: 20.07.2013
Сообщений: 2,089
13.01.2014, 23:30
Учитель из меня не очень, но попробую объяснить.
i - строки, j - столбцы массива.
dir - направление движения. Если -1, то "идем" влево вверх (индексы массива одновременно уменьшаются на -1).
Если 1, то вправо вниз.
При достижении "края" (левой стороны j=0, i%2=0 - i четное или нижней - i = dim-1, j%2=1 - j нечетное) инкрементируем i либо декрементируем j, задавая направление движения (1 или -1).
Во всех случаях не забываем запоминать элементы массива (в строке).
Повторяем процесс, пока выполняется !(i == dim-1 && j == 0), что равнозначно
условию (i != dim-1 || j != 0), то есть останавливаемся при достижении левого нижнего угла.

Не работает для четной размерности массива.
Можно переделать (обобщить) для этого случая, что должно быть делом техники. Кто желает - пусть попрактикуется.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru