这句是什么意思?
/*螺旋矩阵*/#include <stdio.h>
#define N 8
main(){
int i,j,n=1,a[N][N];
for(i=0;i<=N/2;i++){
for(j=i;j<N-i;j++)
a[i][j]=n++;
for(j=i+1;j<N-i;j++)
a[j][N-i-1]=n++;
for(j=N-i-2;j>i;j--)
a[N-i-1][j]=n++;
for(j=N-i-1;j>i;j--)
a[j][i]=n++;
}
for(i=0;i<N;i++){
printf("\n\n");
for(j=0;j<N;j++)
printf("%5d",a[i][j]);
}
getch();
}
哪位大侠给我讲讲这段代码的意思好不好..
这是一个螺旋矩阵.......我看不懂这段代码的意思..谢谢了..
搜索更多相关的解决方案:
include
----------------解决方案--------------------------------------------------------
啃支笔头一边写出矩阵一边看程序,你就明白了。
类似的还有蛇型矩阵,都是用来当做循环的比较好的练习题.
----------------解决方案--------------------------------------------------------
运行一下,看看结果,找找规律,不就知道了!
----------------解决方案--------------------------------------------------------
/*-----------------*
小妹看俺这个螺旋方阵
若看不懂本人负责解释
*-----------------*/
#include<stdio.h>
#define N 9 //阶数可调
static a[N][N];
void fun(int*i,int*j,int n)
{ //指点下一个数填到哪里
if(*i== 0 && *j<n-1)++(*j);//列标++
else if(*j==n-1 && *i<n-1)++(*i);//行标++
else if(*i==n-1 && *j > 0)--(*j);//列标--
else if(*j== 0 && *i > 0)--(*i);//行标--
}
main( )
{
int i=0,j=0,n=0;
for(int k=1;k<=N*N;k++)
{ a[n+i][n+j]=k;
fun(&i,&j,N-n-n);
if(i==0 && j==0)n++;//进入内环
}
//输出螺旋矩阵以验证成功与否:
for(i=0;i<N;i++,printf("\n"))
for(j=0;j<N;j++)printf("%4d",a[i][j]);
}
----------------解决方案--------------------------------------------------------