0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 8

Заполнить матрицу по спирали, начиная от середины и по диагонали влево

11.04.2016, 15:04. Показов 2289. Ответов 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
int main()
{
    int size;
    int i,j;
    int a[100][100];
    printf("Size: ");
    scanf("%d", &size);
 
    int mi=size/2;
 
    a[mi][mi] = 1;
    int value = 1;
    
    for (i = 1; i <=size; i++)
        
    {
        
        for (j = mi - i; j < mi + i; j++)  a[mi - i][j] = ++value;  
        for (j = mi - i; j < mi + i; j++)  a[j][mi + i] = ++value; 
    
        for (j = mi + i; j <= size - mi-i; j--)  a[mi + i][j] = ++value;
        for (j = mi + i; j <= size - mi-i; j--)  a[j][mi - i] = ++value; 
        
    }
    
 
    for (i=0; i < size; i++)
    {
        for (j=0; j < size; j++)
        {
            printf("%4.1d", a[i][j]);
        }
        printf("\n");
    }
 
    
    return 0;
}
Спираль должна выглядеть вот так:
(если size = 3)
2 3 4
9 1 5
8 7 6

(если 5)
10 11 12 13 14
25 2 3 4 15
24 9 1 5 16
23 8 7 6 17
22 21 20 19 18
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2016, 15:04
Ответы с готовыми решениями:

Заполнить массив по спирали начиная с середины
Всем привет, уже месяц мучаюсь над одной задачей Условие: Дано число n. Создайте массив A и заполните его по спирали, начиная с числа 0 в...

Ошибка при компиляции. Заполнить матрицу по спирали из середины
Спираль движется от центра матрицы 9х9: влево, вниз, вправо, вверх. Центр, собственно - mx; При компиляции возникает ошибка в строках 12...

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

1
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
11.04.2016, 21:20
Лучший ответ Сообщение было отмечено twinkle93 как решение

Решение

twinkle93, программа имеет два алгоритма-для четных размеров матрицы и для нечетных.Размер можно менять в строке 3,присваивая N нужное значение.Если размер более 10 то следует увеличить размер поля вывода,чтоб красиво напечаталось.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
 
const int N = 9;
int main()
{
    int i, j, n, x = 1, k, A[N][N];
    if(N % 2 != 0){
            k = N / 2;
            n = 1;
            A[k][k] = x;
            x++;
        while(k - n >= 0){
            i = k - n;
            for(j = k - n; j <= k + n; j++){
                A[i][j] = x;
                x++;
            }
            j--;
            for(i = k - n + 1; i <= k + n; i++){
                A[i][j] = x;
                x++;
            }
            i--;
            for(j = k + n - 1; j >= k - n; j--){
                A[i][j] = x;
                x++;
            }
            j++;
            for(i = k + n - 1; i >= k - n + 1; i--){
                A[i][j] = x;
                x++;
            }
            i++;
            n++;
        }
    }
       else{
            k = N / 2 - 1;
            n = 0;
            while(k - n >= 0){
            i = k - n;
            for(j = k - n; j <= k + n + 1;j++){
                A[i][j] = x;
                x++;
            }
            j--;
            for(i = k - n + 1; i <= k + n + 1; i++){
                A[i][j] = x;
                x++;
            }
            i--;
            for(j = k + n; j >= k - n; j--){
                A[i][j] = x;
                x++;
            }
            j++;
            for(i = k + n; i >= k - n + 1; i--){
                A[i][j] = x;
                x++;
            }
            i++;
            n++;
 
       }
    }
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++)
            printf("%3d", A[i][j]);
        printf("\n");
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2016, 21:20
Помогаю со студенческими работами здесь

(CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх.
(СИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх.

Заполнить матрицу n x n по спирали начиная с левого нижнего угла
Заполнить матрицу n x n по спирали начиная с левого нижнего угла. Заполнить числами от 1 до n. Добавлено через 2 часа 39 минут ...

Заполнить матрицу значениями вектора от центра по спирали: вниз - влево - вверх
Помогите с заданием. Заполнить матрицу значениями вектора b1, b2, ..., b81 от центра по спирали: вниз - влево - вверх - вправо....

Заполнить матрицу начиная с левого верхнего угла закручивающейся по спирали
Как заполнить матрицу размера (m,p) натуральными числами от 1-го до (m-p) начиная с левого верхнего угла закручивающейся по спирали....

Заполнить матрицу ЛП от левого верхнего угла по спирали : вправо-вниз-влево-вверх
#include &lt;stdio.h&gt; #define S 9 int Ar; int main (void){ short l, r; short r1,r2; short dd; short k; ...


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

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

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru