蛇形矩阵:
(斜蛇形矩阵)按照对角线方向依次递增
while( i!=n-1 || j !=n-1){
if(k == 1){
data[i][j+1] = data[i][j] + 1;
j = j + 1;
if(i == n-1){
k = 4;
}else{
k = 2;
}
}else if(k == 2){
data[i+1][j-1] = data[i][j] + 1;
j = j - 1;
i = i +1;
if( j == 0 && i != n-1){
k = 3;
}else if( i == n-1){
k = 1;
}else{
k = 2;
}
}else if(k == 3){
data[i+1][j] = data[i][j] + 1;
i = i+1;
if( j == n-1){
k = 2;
}else {
k = 4;
}
}else if(k == 4){
data[i-1][j+1] = data[i][j] + 1;
j = j + 1;
i = i - 1;
if(i == 0 && j != n-1){
k = 1;
}else if( j == n-1 )
{
k = 3;
}else{
k = 4;
}
}
}
魔方矩阵:
每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中
拉丁矩阵:
每一种不同的元素在同一行或同一列里只出现一次,
int i,j,k,t;
printf("The possble Latin Squares of order %d are:\n",N);
for(j=0;j<N;j++) /*构造N个不同的拉丁方阵*/
{
for(i=0;i<N;i++)
{
t=(i+j)%N; /*确定该拉丁方阵第i 行的第一个元素的值*/
for(k=0;k<N;k++) /*按照环的形式输出该行中的各个元素*/
printf("%d",(k+t)%N+1);
printf("\n");
}
printf("\n");
}
}