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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.76
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
#1

Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке - C++

01.06.2013, 16:42. Просмотров 3786. Ответов 11
Метки нет (Все метки)

Помогите построить задачку на двумерный массив!

Заполнить квадратную таблицу размером n*n последовательными целыми числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке.

Не совсем понятно, как это все реализовать при вводе n самому...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2013, 16:42     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке
Посмотрите здесь:
C++ Прокрутить четверти матрицы по часовой стрелке, начиная с верхнего левого угла
C++ Заполнить квадратную матрицу от левого верхнего угла по спирали
Заполнить матрицу ЛП, от левого верхнего угла по спирали: вправо - вниз - влево - вверх. C++
C++ Сформируйте линейный массив получающийся при чтении массива с левого верхнего угла до середины против часовой стрелки
Заполнить двумерный массив размером 7 на 7 числами, расположенными в нем по спирали C++
Дан двумерный массив.Получить последовательность чисел, получающуюся при чтение этого массива по спирали,по часовой стрелке начиная с середины массива C++
C++ Заполнить квадратную матрицу по спирали по часовой стрелке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
01.06.2013, 16:48     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #2
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
#include <iostream>
#include <fstream>
#include<cstdio>
#include <iomanip>
#include<cstdlib>
#include<string>
#include<cmath>
#include<vector>
#include<ctime>
 
using namespace std;
 
int main() {
    int N, i, j, a[100][100], t = 1;
    scanf("%d", &N);
    for (i = 0; i < N / 2; i++) {
        for (j = i; j < N - i; j++)
            a[i][j] = t++;
        for (j = i + 1; j < N - i; j++)
            a[j][N - 1 - i] = t++;
        for (j = N - 2 - i; j >= i; j--)
            a[N - 1 - i][j] = t++;
        for (j = N - 2 - i; j > i; j--)
            a[j][i] = t++;
    }
    if (N % 2 == 1)
        a[N / 2][N / 2] = t;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            j < N - 1 ? cout << a[i][j] << ' ' : cout << a[i][j] << endl;
        }
    }
    return 0;
}
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:02  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #3
Спасибо конечно, но условие немного по-другому записано...То есть матрица должны быть квадратная, и со стороной n, а n вводится с клавиатуры...и тогда как раз все числа до n в квадрате по спирали заполняют матрицу.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
01.06.2013, 18:06     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #4
Цитата Сообщение от Dicur3x Посмотреть сообщение
ы...и тогда как раз все числа до n в квадрате по спирали заполняют матрицу
ну напишите пример такой матрицы
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:09  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #5
Цитата Сообщение от Belfegor Посмотреть сообщение
ну напишите пример такой матрицы
Дык по примеру и я бы сделал Стараюсь понять.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
01.06.2013, 18:10     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #6
1 2 3
6 5 4
7 8 9
?
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:16  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #7
Цитата Сообщение от Belfegor Посмотреть сообщение
1 2 3
6 5 4
7 8 9
?
А, матрицу нарисовать, которая должна получиться:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

И это при n=4 лишь
Xsenon_rus
8 / 8 / 0
Регистрация: 18.04.2011
Сообщений: 104
01.06.2013, 18:18     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #8
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

Может так ?
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
01.06.2013, 18:19     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #9
значит я правильно понял, вы бы хоть проверили то, что написал я....
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:20  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #10
Цитата Сообщение от Xsenon_rus Посмотреть сообщение
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

Может так ?
Цитата Сообщение от Dicur3x Посмотреть сообщение
А, матрицу нарисовать, которая должна получиться:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

И это при n=4 лишь
Дык так и написал )
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:29  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #11
Цитата Сообщение от Belfegor Посмотреть сообщение
значит я правильно понял, вы бы хоть проверили то, что написал я....
Я же пишу, в процессе понимания...Пытаюсь понять код...У самого сложности с этими массивами...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 18:47     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке
Еще ссылки по теме:
C++ Заполнить матрицу от левого верхнего угла по диагонали
C++ Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра
C++ Заполнить массив 3х3 числами по возрастанию, по спирали начиная с центра
Заполнить матрицу, от левого верхнего угла по диагонали: вправо - вверх C++
C++ Заполнить матрицу ЛП, от левого верхнего угла по диагонали: вправо - вверх

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

Или воспользуйтесь поиском по форуму:
Dicur3x
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 29
01.06.2013, 18:47  [ТС]     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке #12
Цитата Сообщение от Belfegor Посмотреть сообщение
значит я правильно понял, вы бы хоть проверили то, что написал я....
Спасибо, программа работает, а вот код не пойму...И в универе времени не хватает, чтобы мне переподаватель объяснил все, не один ведь я там. Спасибо.
Yandex
Объявления
01.06.2013, 18:47     Заполнить массив числами от 1 до n^2, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке
Ответ Создать тему
Опции темы

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