Технологии
Решено
Здравствуйте! Мне надо заполнить квадратную матрицу числами от 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
-
#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 />}
Лучший ответ по мнению автора
Похожие вопросы
При попытке компиляции кода на Visual Studio 2013 вылетает сообщение "Системе не удается найти указанный путь". Что это значит и что делать? Спасибо! ОС - Windows 7, 32 bit.
май 30, 2014 г.
В каком сегменте хранятся статические переменные? <p>В каком сегменте хранятся статические...
декабрь 28, 2012 г.