C语言 螺旋方阵?

Python034

C语言 螺旋方阵?,第1张

#include<stdio.h>

int main()

{int x=0,y=0,n,i,a[22][22]={0},c

scanf("%d",&n)

c=a[x][y]=1

while(c<n*n)

{while(y<n-1&&!a[x][y+1])a[x][++y]=++c //向右

while(x<n-1&&!a[x+1][y])a[++x][y]=++c //向下

while(y>0&&!a[x][y-1])a[x][--y]=++c //向左

while(x>0&&!a[x-1][y])a[--x][y]=++c //向上

}

for(x=0x<nx++)

{for(y=0y<ny++)

  printf("%4d",a[x][y])

printf("\n")

}

return 0

}

#include <stdio.h>#include<stdlib.h>void main() { int

i,j,n,number=1,a[30][30]printf("Please input a number N:")

scanf("%d",&n)for(i=0i<=n/2i++) //控制总共有几个顺时针螺旋 {

for(j=ij<n-ij++) //向右(改变纵坐标,保持横坐标不变) a[i][j]=number++

for(j=i+1j<n-ij++) //向下(改变横坐标,保持纵坐标不变) a[j][n-i-1]=number++

for(j=n-i-2j>ij--) //向左(改变纵坐标,保持横坐标不变) a[n-i-1][j]=number++

for(j=n-i-1j>ij--) //向上(改变横坐标,保持纵坐标不变) a[j][i]=number++}

for(i=0i<ni++) { for(j=0j<nj++) printf("%d\t",a[i][j])

printf("\n")} }