C语言打印螺旋阵

191 阅读1分钟

本文已参与新人创作礼活动,一起开启掘金创作之路

void main() { int i,j; int n; int num = 1;

for (n = 0;n<N/2;n++)
{
	for(i = n;i<N-n-1;i++)
		m[i][n] = num++;
	for(j = n;j<N-n-1;j++)
		m[i][j] = num++;
	for(i = N-n-1;i > n;i-- )
		m[i][j] = num++;
	for(j = N-n-1;j>n;j--)
		m[i][j] = num++;
}
if(1 == N%2)
{
	m[N/2][N/2]=num;
}


for(i=0;i<N;i++)
{
	for(j=0;j<N;j++)
	printf("%3d ",m[i][j]);
	printf("\n");
}
	

}

//方法2

#include<stdio.h> #define N 7

void main() { int i,j; int n=0; int num = 1; int a[N][N];

if(N%2==0)
	for (n = 0;n<N/2;n++)
	{
		for(i = n;i<N-n-1;i++)
		a[i][n] = num++;
		for(j = n;j<N-n-1;j++)
		a[i][j] = num++;
		for(i = N-n-1;i > n;i-- )
		a[i][j] = num++;
		for(j = N-n-1;j>n;j--)
		a[i][j] = num++;
	}
else
{
	for (n = 0;n<N/2;n++)
	{
		for(i = n;i<N-n-1;i++)
		a[i][n] = num++;
		for(j = n;j<N-n-1;j++)
		a[i][j] = num++;
		for(i = N-n-1;i > n;i-- )
		a[i][j] = num++;
		for(j = N-n-1;j>n;j--)
		a[i][j] = num++;
	}

	a[N/2][N/2]=num++;

}
for(i=0;i<N;i++)
{
	for(j=0;j<N;j++)
	printf("%3d ",a[i][j]);
	printf("\n");
}
	

}