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

Заполнение матрицы по-спирали - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления http://www.cyberforum.ru/cpp-beginners/thread1669863.html
Помогите написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления. Цифра в самом младшем (нулевом) разряде этой системы счисления может принимать...
C++ Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? что то не пойму, как происходит переполнение знаковых целых чисел вот #include <iostream> int main(int argc, char* argv) { int aaa , bbb ; aaa = 1 ; http://www.cyberforum.ru/cpp-beginners/thread1669848.html
C++ Правильное применение перечисления enum
Дело в том, что не пойму как работать с перечислением. Мне нужно, чтобы программа принимала данные о 3 сотрудниках ( дата найма на работу, номер и размер пособия, его должность). Должности 3 -...
C++ Программа для построения графов. Как запустить созданный файл в graphviz?
Необходимо создать программу, которая будет обрабатывать матрицу смежности графа и записывать файл для graphviz. Проблема состоит в том что я не знаю как запустить(через код моей программы) созданный...
C++ Отсортировать по убыванию четные столбцы массива http://www.cyberforum.ru/cpp-beginners/thread1669831.html
Дан массив размерностью 5х6. Отсортировать по убыванию четные столбецы массива.
C++ Наибольший элемент строки матрицы поменять местами с элементом главной диагонали Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.(главная диагональ - идущая с левого верхнего угла в правый нижний) подробнее

Показать сообщение отдельно
Арен
16 / 16 / 6
Регистрация: 27.05.2014
Сообщений: 132

Заполнение матрицы по-спирали - C++

24.02.2016, 20:40. Просмотров 171. Ответов 0
Метки (Все метки)

Здравствуйте. Вот я нашел решение задачи насчет заполнение массива по-спирали, но так и до конца не понял как сама программа работает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 
    const int N = 20;
    int n;
    do
    {
        cout << "n = ";
        cin >> n;
    } while (n < 1 || N < n);
 
    int a[N][N];
    int k = 1;
    int i = 0;
    int j = 0;
    while (k <= n*n)
    {
 
        a[i][j] = k;
        if (i <= j + 1 && i + j < n - 1)
            ++j;
        else if (i < j && i + j >= n - 1)
            ++i;
        else if (i >= j && i + j > n - 1)
            --j;
        else
            --i;
        ++k;
    }
 
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            cout << setw(4) << a[i][j];
        cout << endl;
    }
}
Если не сложно можете наглядно обЪяснить вот эту часть
C++
1
2
3
4
5
6
7
8
9
if (i <= j + 1 && i + j < n - 1)
            ++j;
        else if (i < j && i + j >= n - 1)
            ++i;
        else if (i >= j && i + j > n - 1)
            --j;
        else
            --i;
        ++k;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru