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

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

Восстановить пароль Регистрация
 
Арен
16 / 16 / 6
Регистрация: 27.05.2014
Сообщений: 132
24.02.2016, 20:40     Заполнение матрицы по-спирали #1
Здравствуйте. Вот я нашел решение задачи насчет заполнение массива по-спирали, но так и до конца не понял как сама программа работает.

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;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2016, 20:40     Заполнение матрицы по-спирали
Посмотрите здесь:

Заполнение матрицы по спирали C++
Заполнение матрицы по спирали (из центра по часовой стрелке) C++
Заполнение матрицы по спирали C++
C++ Заполнение матрицы по спирали с использованием case - break
Заполнение матрицы по спирали C++
C++ Заполнение матрицы по спирали: модифицировать имеющийся код
Заполнение матрицы по спирали C++
Заполнение матрицы по спирали C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru