Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 1
Регистрация: 02.11.2018
Сообщений: 19
1

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

29.11.2018, 21:12. Просмотров 433. Ответов 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream> 
#include <iomanip>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int N, M;
    cout << "Введите размер матрицы:" << endl;
    cout << "N = ";
    cin >> N;
    cout << "M = ";
    cin >> M;
    int **A = new int *[N];
    for (int i = 0; i < N; i++)
    {
        A[i] = new int[M];
    }
    int i = 0, j, k = 0, p = 1;
    while (i < N*M)            //Цикл по номеру витка
    {
        k++;
        for (j = k - 1; j < M - k + 1; j++)
        {
            A[k - 1][j] = p++;
            i++;
        }
        //верхняя строка 
        for (j = k; j < N - k + 1; j++)
        {
            A[j][M - k] = p++;
            i++;
        }
        //правый столбец 
        for (j = M - k - 1; j >= k - 1; j--)
        {
            A[N - k][j] = p++;
            i++;
        }
        //нижняя строка
        for (j = N - k - 1; j >= k; j--)
        {
            A[j][k - 1] = p++;
            i++;
        }
        //левый столбец 
    }
    for (int q = 0; q < N; q++)
    {
        for (int w = 0; w < M; w++)
        {
            cout << " " << A[q][w];
        };
        cout << endl;
    }
    system("pause");
    return(0);
}
Я новичок в программировании, нашел такую задачу. Запустить матрицу по спирали. Нашел решение. Не могу в нем разобраться.
Мне не понятен первый цикл, что он делает?
C++
1
2
3
4
5
6
k++;
        for (j = k - 1; j < M - k + 1; j++)
        {
            A[k - 1][j] = p++;
            i++;
        }
И не понятно, что такое k, p, w и за что они отвечают.
Объясните, пожалуйста, кто разбирается
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 21:12
Ответы с готовыми решениями:

Заполнение матрицы по спирали
как заполнить матрицу ЛП, от левого верхнего угла по спирали: вправо - вниз - влево - вверх

Заполнение матрицы по спирали
Заполнить матрицу 10х10 числами от 1 до 100 по порядку, начиная с верхнего левого угла. ...

Заполнение матрицы по спирали
Дано натуральное N (1&lt;=N&lt;=10). Заполнить матрицу порядка N*N целыми числами 0, 1, 2, 3, …, N^2–1 по...

Заполнение матрицы по спирали
Здравствуйте! Помогите, пожалуйста, с задачей: Заполнить квадратную матрицу nxn последовательными...

1
324 / 266 / 136
Регистрация: 08.04.2013
Сообщений: 1,150
29.11.2018, 22:15 2
код не совсем правильный попробуй N=5 и M=7, работает правильно только на четном количестве строк
k- переменная для смещения, p - записываемая цифра, q и w (лишние переменные) то же самое что и i and j
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 22:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Заполнение матрицы по спирали
Привет всем, можете помочь пожалуйста: надо придумать алгоритм, написать код на С++ заполнения...

Заполнение матрицы по спирали
Напишите программу, которая заполняет матрицу из N строк и M столбцов заполненную заданным...

Заполнение матрицы змейкой (по спирали)
Люди!Помогите!Пожалуста!У меня зачёт скоро!Не могу сделать прогу!В чём суть?!Пользователь должен...

Заполнение матрицы змейкой (по спирали)
Написать программу, которая двумерный массив целых чисел размером 5х5 заполняет следующим образом:...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.