1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25 型蛇形矩阵
#include<stdio.h>
#define SIZE 100
void newMatrix(int matrix[SIZE][SIZE],int n);
int main()
{
int matrix[SIZE][SIZE]={0};
newMatrix(matrix,10);
}
void newMatrix(int matrix[SIZE][SIZE],int n)
{
int count=1,dia=1;
int x=0,y=0;
int i,j;
while(dia<=(2*n-1)){
if(dia%2){
do{
matrix[x][y]=count;
count++;
x=x-1;
y=y+1;
}while(x>=0&&y>=0&&x+y==dia-1&&x<n&&y<n);
dia++;
if(dia>n)
{
x=x+2;
y=y-1;
}
else{
x=x+1;
}
}
if(!(dia%2)){
do{
matrix[x][y]=count;
count++;
x=x+1;
y=y-1;
}while(x>=0&&y>=0&&x+y==dia-1&&x<n&&y<n);
dia++;
if(dia>n){
x=x-1;
y=y+2;
}
else{
y=y+1;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%3d ",matrix[i][j]);
}
printf("\n");
}
}