Здравствуйте! Мне надо заполнить квадратную матрицу числами от 1 до n по спирали, подайте, пожалуйста, идею как это можно сделать... - вопрос №610212

вот мой код:

#include <stdio.h>
#include <math.h>
int main()
{
    int n,k,i,j,b,v,c,x,y,g=0,d=0,f;
    const int m=3;
    int A[m][m];
    c=m*m;
    f=m;
for(v=1; v<3; v++)
{
    for(i=0; i<m; i++)
    {
        for(j=0; j<m; j++)
       {
            while(i=d)
            {
                g++;
                A[i][j]=g;
        
            }
            while(j=f)
            {
                while(i!=d)
                {
                g++;
                A[i][j]=g;
                }
            }
            while(i=f)
            {
                while(j!=f)
                {
                g++;
                A[i][j]=g;
                }
            }
            while(j=d)
            {
                while(i!=d)
                {
                    while(i!=f)
                    {
                g++;
                A[i][j]=g;
                    }
                }
            }

        }
    }
    d++;
    f--;
}
        
    for(x=1; x<=m; x++)
    {
        for(y=1; y<=m; y++)
        {
            printf("%d ", A[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Но что-то мне подсказывает, что он совсем неправильный ))

16.04.13
1 ответ

Лучший ответ по мнению автора

#include<stdio.h><br <br int main()<br {<br int i, j, n, c, v, x, y, dx, dy, p, lm, lm1;<br int a[100][100];<br <br printf("n? ");<br scanf("%d", &n);<br <br c = n * n;<br v = 1;<br x = 0; y = 0; dx = +1; dy = 0; p = 0; lm = n; lm1 = -1;<br <br while (v <= c) {<br a[x][y] = v;<br v = v + 1;<br x = x + dx; y = y + dy;<br <br if (x + dx == lm) {<br dy = dx;<br dx = 0;<br } else if (y + dy == lm) {<br dx = -dy;<br dy = 0;<br } else if (x + dx == lm1) {<br dy = dx;<br dx = 0;<br } else if (y + dy == lm1 + 1 && dy) {<br lm1 = lm1 + 1;<br lm = lm — 1;<br dx = 1; dy = 0;<br }<br }<br <br for (i = 0; i < n; i++) {<br for (j = 0; j < n; j++)<br printf("%5d", a[i][j]);<br printf("\n");<br }<br return 0;<br }
16.04.13
Лучший ответ по мнению автора
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store