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

Определить произведение элементов в тех строках, которые не содержат отрицательных элементов; - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите пожалуйста написать несколько программок на С++ http://www.cyberforum.ru/cpp-beginners/thread359861.html
1)В scanf(" %d %f",&a,&c); Вводить с клавиатуры числа в формате: - int, float - int, int - float, int - float, double и выводить их на печать...
C++ Как можно писать эту программу? я не могу писать эту программу ... задание. Разработка консольного приложения на языках C++ и C# Разработать консольное приложение в средах Borland Turbo C++ и Visual Studio C# в соответствии... http://www.cyberforum.ru/cpp-beginners/thread359848.html
64-битная версия vcomp.lib и vcompd.lib из Visual Studio 2010 C++
Здравствуйте. Встала проблема скомпилировать 64-битное приложение с поддержкой OpenMP. В силу рада обстоятельств вынужден использовать Express версию Visual Studio. Для линковки Release и Debug...
C++ Реализация очереди на базе массива
реализация очереди на базе массива . код С
C++ Помогите начать с SDK http://www.cyberforum.ru/cpp-beginners/thread359815.html
Никогда не пользовался ни SDK ни сторонними библиотеками, помогите, пожалуйста.=-O Есть 4-канальная плата видеозаписи, драйверы, SDK, документация на SDK, а я даже не могу определить, на каком...
C++ Выбор учебника по пограммироанию 3D игр Привет. Нашёл 2 учебника и хочу что бы вы посоветовали из приведённых двух какой лучше для новичка выбрать.... (имею ввиду какой будет попроще в понимании). (пока только освоил весь этот... подробнее

Показать сообщение отдельно
alkagolik
Заблокирован
03.10.2011, 22:28
Цитата Сообщение от instagib Посмотреть сообщение
если объясните в вкратце для чего 2 переменные и что происходит в цикле - Цены вам нет.
просто списать можно..но в башке пусто будет
переменные
tmp_size - длина самой короткой побочной диагонали. изначально равна 2 как самая короткая для любой матрицы "больше" чем 2х2. с каждым проходом цикла while() увеличивается на 1.
iter = SIZE - 2 номер "стартового" (для подсчета) столбца нулевой строки в первом цикле for() и "стартовой" строки для нулевого столбца во втором цикле for(). уменьшается на 1 в цикле while для захвата элементов более длинных диагоналей
цикл
Код
for(i = 0, k = iter; i < tmp_size; ++i, ++k)
тут все просто первым идет элемент матрицы arr[0][iter]. с помощью инкремента сразу двух индексов ("i" и "k") мы перемещаемся на элемент строки + 1 и элемент столбца + 1. т.е. прямо по диагонали до тех пор, пока не исчерпана длина диагонали tmp_size.
Точно так же и во втором цикле for() за исключением того, что индексы строк и столбцов заменены между собой. Таким образом после каждого прохода по циклу for() мы проверяем значение sum с имеющимся маскимумом... тут думаю все понятно.
Дальше мы увеличиваем размер диагонали на 1, а "стартовый" индекс iter уменьшаем на 1 и так до тех пор, пока iter не равен 0.
Вам будет еще проще разобрать, если нарисуете матрицу 4х4 и пошагово с ручкой и тетрадкой разберете код программы.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru