//************蛇形数组
#include "stdio.h"
int main()
{
int a[100][100]={0};
int i,j,k=1,n,t=1,m; //t为转向的标记
printf("input \n");
scanf("%d",&m); //上图所示m的值为9
for(i=1;i<=m;i++) //此外层循环总共循环9次
{
for(j=1;j<=i;j++)
{
if(t==-1)
a[j][i-j+1]=k++;
else
a[i-j+1][j]=k++;
}
t=-t;
}//此时左上三角赋值完毕
for(i=2,n=2;i<=m;i++,n++) //首先判断外层循环执行的次数为8次
{
for(j=n;j<=m;j++) //内层循环的次数随着外层循环的执行而减少
{
if(t==-1)
a[j][i-j+m]=k++;
else
a[i-j+m][j]=k++;
}
t=-t;
}
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{
printf((j%m==0)?"%d \n":"%d ",a[i][j]);
}
return 0;
}
#include "stdio.h"
int main()
{
int a[100][100]={0};
int i,j,k=1,n,t=1,m; //t为转向的标记
printf("input \n");
scanf("%d",&m); //上图所示m的值为9
for(i=1;i<=m;i++) //此外层循环总共循环9次
{
for(j=1;j<=i;j++)
{
if(t==-1)
a[j][i-j+1]=k++;
else
a[i-j+1][j]=k++;
}
t=-t;
}//此时左上三角赋值完毕
for(i=2,n=2;i<=m;i++,n++) //首先判断外层循环执行的次数为8次
{
for(j=n;j<=m;j++) //内层循环的次数随着外层循环的执行而减少
{
if(t==-1)
a[j][i-j+m]=k++;
else
a[i-j+m][j]=k++;
}
t=-t;
}
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{
printf((j%m==0)?"%d \n":"%d ",a[i][j]);
}
return 0;
}