Заполнение Массива По Спирали

Тема в разделе "Общие вопросы по С и С++", создана пользователем Dominus, 7 дек 2012.

  1. Dominus

    Dominus Гость

    помогите заполнить массив по спирали по часовой стрелки . Посмотреть вложение 5368 У меня заполняет массив последовательно
    #include <stdio.h>
    #define S 9
    int Ar; /* матрица */
    int main(void) {
    short l, r; /* текущие индексы */
    short r1,r2; /* граничные номера столбцов */
    short dd; /* модификатор граничных номеров */
    short k; /* текущий член ЛП */
    /* начальные значения переменных */
    r1=1; r2=S-1; dd=1; k=1;
    for (l=0; l<S; l++) { /* перебор строк */
    for (r=0; r<S; r++) /* перебор столбцов */
    /* условие ненулевого значения */
    if ((r<r1)||(r>r2)) Ar[l][r]=1;
    else Ar[l][r]=k++;
    /* конец перебора строк */
    /* модификация границ */
    r1-=dd; r2+=dd;
    /* уловие перехода в нижнюю часть */
    if (r1>r2) dd=-dd;
    } /* конец перебора столбцов */
    /* вывод матрицы */
    for (l=0; l<S; l++) {
    for (r=0; r<S; r++) {
    printf("%3d",Ar[l][r]);
    }
    printf("\n");
    }
    return 0;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    в интернетах есть готовые решения (и я тоже где-то их писал), они все не подходят?
     
Загрузка...

Поделиться этой страницей