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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
INZA
 Аватар для INZA
61 / 57 / 1
Регистрация: 18.11.2010
Сообщений: 499
25.03.2011, 13:20     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх. #1
(СИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2011, 13:20     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх.
Посмотрите здесь:

C++ Заполнить матрицу линейной последовательностью (0-81), от левого верхнего угла по диагонали: вправо - вверх
Заполнить матрицу ЛП, от левого верхнего угла по спирали: вправо - вниз - влево - вверх. C++
C++ Реакция на нажатие клавиш (вверх, вниз, влево, вправо)
Заполнить матрицу из центра по спирали C++
Заполнить матрицу, от левого верхнего угла по диагонали: вправо - вверх C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
25.03.2011, 13:34     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх. #2
Красивая картинка.
А в чем проблема?

Добавлено через 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
#include <stdio.h>
#include <conio.h>
#define N 9
 
int main()
{       int spiral[N][N];
        int i,j,k, edge, num = N*N;
        for(k=0; k<N/2;k++) //слои
        {       edge = N-1-k;
                for(j=k;j<edge;j++,num--)             
                        spiral[k][j]=num;
                for(i=k;i<edge;i++, num--)             
                        spiral[i][edge]=num;
                for(j=edge;j>k;j--, num--)    
                        spiral[edge][j]=num;
                for(i=edge;i>k;i--, num--)             
                        spiral[i][k]=num;
        }
        
        if(N%2) //если N-нечетное дополнить центральным элементом
              spiral[N/2][N/2]=num;
       
 
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) printf("%6d",spiral[i][j]);
                printf("\n");
        }
 
        getch();
        return 0;
}
INZA
 Аватар для INZA
61 / 57 / 1
Регистрация: 18.11.2010
Сообщений: 499
25.03.2011, 14:36  [ТС]     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх. #3
Цитата Сообщение от IrineK Посмотреть сообщение
Красивая картинка.
А в чем проблема?

Добавлено через 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
#include <stdio.h>
#include <conio.h>
#define N 9
 
int main()
{       int spiral[N][N];
        int i,j,k, edge, num = N*N;
        for(k=0; k<N/2;k++) //слои
        {       edge = N-1-k;
                for(j=k;j<edge;j++,num--)             
                        spiral[k][j]=num;
                for(i=k;i<edge;i++, num--)             
                        spiral[i][edge]=num;
                for(j=edge;j>k;j--, num--)    
                        spiral[edge][j]=num;
                for(i=edge;i>k;i--, num--)             
                        spiral[i][k]=num;
        }
        
        if(N%2) //если N-нечетное дополнить центральным элементом
              spiral[N/2][N/2]=num;
       
 
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) printf("%6d",spiral[i][j]);
                printf("\n");
        }
 
        getch();
        return 0;
}
спасибо но у меня почему то поворот выполняется только после сворачивания окна СИ, не подскажите с чем это связано?
IrineK
Заблокирован
25.03.2011, 15:11     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх. #4
поворот выполняется только после сворачивания окна СИ, не подскажите с чем это связано?
Очевидно, с вашей способностью видеть сквозь свернутые окна.
В цирк пора, батенька.
Yandex
Объявления
25.03.2011, 15:11     (CИ)Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх.
Ответ Создать тему
Опции темы

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