(下)--螺旋矩阵的打印---由外向内旋转的八种情况
2014-08-07 12:40
155 查看
#include <stdio.h>
#define N 5
int print_array(int (*b)
);
int spin_array(int (*c)
);
int fold_array(int (*d)
);
int main(int argc, const char *argv[])
{
int s
;
int k=0,i=0,j=0;
int a=1;
for(;k<(N+1)/2;k++)
{
while(j < N-k)s[i][j++]=a++;i++;j--;
while(i < N-k)s[i++][j]=a++;i--;j--;
while(j > k-1)s[i][j--]=a++;i--;j++;
while(i > k)s[i--][j]=a++;i++;j++;
}
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
}
int spin_array(int (*c)
)
{
int i,j;
int b
;
int (*p)
=c;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
b[i][j]=p[N-j-1][i];
}
}
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
c[i][j] = b[i][j];
}
print_array(c);
return 0;
}
int fold_array(int (*d)
)
{
int i,j,tmp;
int a
;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=d[i][j];
}
}
for(i=0;i<N;i++)
for(j=0;j<i;j++)
{
tmp = a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
print_array(a);
return 0;
}
int print_array(int (*b)
)
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
printf("%5d",b[i][j]);
if((j+1)%N==0)
putchar('\n');
}
return 0;
}
打印结果:
}
#define N 5
int print_array(int (*b)
);
int spin_array(int (*c)
);
int fold_array(int (*d)
);
int main(int argc, const char *argv[])
{
int s
;
int k=0,i=0,j=0;
int a=1;
for(;k<(N+1)/2;k++)
{
while(j < N-k)s[i][j++]=a++;i++;j--;
while(i < N-k)s[i++][j]=a++;i--;j--;
while(j > k-1)s[i][j--]=a++;i--;j++;
while(i > k)s[i--][j]=a++;i++;j++;
}
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
printf("=============================\n");
spin_array(s);
printf("=============================\n");
fold_array(s);
}
int spin_array(int (*c)
)
{
int i,j;
int b
;
int (*p)
=c;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
b[i][j]=p[N-j-1][i];
}
}
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
c[i][j] = b[i][j];
}
print_array(c);
return 0;
}
int fold_array(int (*d)
)
{
int i,j,tmp;
int a
;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=d[i][j];
}
}
for(i=0;i<N;i++)
for(j=0;j<i;j++)
{
tmp = a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
print_array(a);
return 0;
}
int print_array(int (*b)
)
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
printf("%5d",b[i][j]);
if((j+1)%N==0)
putchar('\n');
}
return 0;
}
打印结果:
}
相关文章推荐
- (上)--螺旋矩阵的打印---由内向外旋转的八种情况
- 螺旋数阵(上)由外向内旋转的8种情况
- [Simple] 方阵由外向内旋转排列,打印
- 旋转打印n阶矩阵(第0届第4题)
- C语言(6)--国际象棋棋盘、螺旋矩阵、指定年份日历、打印ASCII码表
- [转]在不预览的情况下打印RDLC报表
- 打印螺旋矩阵
- VLD 无法打印堆栈调用情况
- 美团面试题 将一个n X n二维数组逆时针旋转45度后打印
- 找出一个二维数组中的“鞍点”,即该位置上的元素在该行中 最大,在该列中最小(也可能没有“鞍点”),打印有关信息。(提示:注意特 殊情况:没鞍点或多个鞍点)
- 八种ADSL接入情况中断流现象分析
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,
- 矩阵------顺时针打印矩阵+顺时针旋转矩阵+之字形打印矩阵(Java)
- 网易游戏笔试题─两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。 B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
- 分情况报表打印和Form消息屏蔽
- 每日一题(3)——打印螺旋矩阵(queue)
- 用css将一行文字顺时针旋转九十度的办法【样式如图,具体情况具体调整】
- 润乾——打印报错的几种情况
- 打印螺旋矩阵
- PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例