Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение хитрой матрицы 
:(
    Опции темы
AISIN
Дата 31.5.2005, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 27.1.2005
Где: Пушкино

Репутация: нет
Всего: 1



Ну еще можно так сделать
Нужно проследить как меняется в массиве A[i][k] коэффициенты
i,k.
Код

         i                           k
1       -                          +
2     ++                         --
3      ---                       +++
4    ++++                     ----
5     -----                    +++++
6  ++++++                  ------
7    -------                  +++++++
8 ++++++++             ---------
9    --------

Просто то мы прибавляем к i еденицу и вычитаем еденицу из k
или несколько едениц и наоборот! Вот так мы движемся по спирали в
массиве и заполняем его!
Код

int main()
{
    int i,k;
    int A[9][9];
    int L,x,n,y;
    x=n=y=L=1;

    for(i=0;i<9;i++){
        for(k=0;k<9;k++){
            A[i][k]=0;
        }
    }
    i=k=4;
    A[i][k]=x;
    do
    {
        for(int y=1;y<=n;y++)
        {
                i=i-L;
            A[i][k]=++x;
        
        }
        for(int r=1;r<=n;r++)
        {
                k=k+L;
            A[i][k]=++x;
            
        }
        switch(L){
        case -1:
            L=1;
            break;
        case 1:
            L=-1;
        }
        if(n<9)n++;
    }
    while(i>=0 && k>=0 && k<9 && i<9);


Это сообщение отредактировал(а) AISIN - 31.5.2005, 22:45
--------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002%
PM MAIL   Вверх
Амортизатор
Дата 1.6.2005, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: 1
Всего: 8



AISIN, отлично, код-то покороче будет. Но это более частный случай. Например, если нужно, чтобы стороны спирали были разные (по-вертикали длиннее чем по горизонтали), то придется заново анализировать как ведет себя спираль. А так достаточно задать начальные условия
Код

A[4][5]=0;
A[5][5]=0;
A[6][5]=0;

и будет спираль сплющенная.



--------------------
Поехали!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.