Заполнение массива по спирали
Вложений: 1
надо запомнить массив так
Вложение 109320 а у меня заполняется последовательно помогите решить #include <stdio.h> #define S 9 int Ar[S][S]; /* матрица */ 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; } |
Вложений: 1
Не знаю, будет ли Вам в том польза, но, поскольку я на СИ не программирую, написал на Паскале, но с максимальной "приближенностью" к сишным параметрам (нумерация массива с нуля, что мне непривычно, и т.п.). Посмотрите, может быть поможет:
Код:
Var |
Часовой пояс GMT +4, время: 14:40. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.