#include <stdio.h> int main() { int i=0,j=0; int m[10][10]={0},s=1; int a,b,c,d,parity,k,n,center; printf("输入蛇形矩阵的n:"); scanf("%d",&n); parity=n%2;//检测n的奇偶性; center=n/2; for(k=(n+1)/2;k>0;k--) { for(a=0;a<2*k-1-parity;a++) { m[i][j]=s; j++; s++; } for(b=0;b<2*k-1-parity;b++) { m[i][j]=s; i++; s++; } for(c=0;c<2*k-1-parity;c++) { m[i][j]=s; j--; s++; } for(d=0;d<2*k-1-parity;d++) { m[i][j]=s; i--; s++; } i++; j++; if(parity!=0&&i==center&&j==center) { m[i][j]=s; break; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%3d",m[i][j] ); } printf(" "); } } }
结果: