Технологии

Решено

Здравствуйте! Мне надо заполнить квадратную матрицу числами от 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, 2013 г.

  • Всего ответов: 1

  • Сергей - аватарка

    Сергей

    9-й в Технологиях

    #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, 2013 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы

счетчик нажатий на кнопку.

декабрь 11, 2011 г.

Технологии