打印螺旋矩阵

作者: 1墨家巨子 | 来源:发表于2019-08-19 20:47 被阅读0次

题目要求

     将螺旋方阵存放到N×N的二维数组中并把它打印 输出。
     要求程序自动生成下图所示螺旋方阵。
     用 #define定义常量N。
     要求对N进行更改也能达到 相同的效果。
     1   16  15  14  13
     2   17  24  23  12
     3   18  25  22  11
     4   19  20  21  10
     5   6   7   8   9

打印矩阵

 1  4
 2  3
/*********打印螺旋矩阵**********/
#define N 2
void demo5(void){
  int a[N][N]={0};
  int i,j;
  int num=1;
      for(i=0;i<N-1;i++){
          a[i][0]=num++;
     }
      for(j=0;j<N-1;j++){
          a[N-1][j]=num++;
     }
      for(i=N-1;i>0;i--){
          a[i][N-1]=num++;
     }
      for(j=N-1;j>0;j--){
          a[0][j]=num++;
     }
  //打印显示螺旋矩阵
  for(i=0;i<N;i++){
    for(j=0;j<N;j++){
          printf("%d ",a[i][j]);
  }
    printf("\n");
  }
}

打印矩阵

1  8  7
2  9  6
3  4  5 
/*********打印螺旋矩阵**********/
#define N 3
void demo5(void){
  int a[N][N]={0};
  int i,j;
  int num=1;
      for(i=0;i<N-1;i++){
          a[i][0]=num++;
     }
      for(j=0;j<N-1;j++){
          a[N-1][j]=num++;
     }
      for(i=N-1;i>0;i--){
          a[i][N-1]=num++;
     }
      for(j=N-1;j>0;j--){
          a[0][j]=num++;
     }
      //判断N是否为奇数
          if(1==N%2){
             a[N/2][N/2]=num;
          }
  //打印显示螺旋矩阵
  for(i=0;i<N;i++){
    for(j=0;j<N;j++){
          printf("%d ",a[i][j]);
  }
    printf("\n");
  }
}

打印题目要求的矩阵(当N=6时)

/*********打印螺旋矩阵**********/
#define N 6
void demo5(void){
  int a[N][N]={0};
  int i;//行数
  int j;//列数
  int k;//层数
  int num=1;
for(k=0;k<N/2;k++){
    for(i=k;i<N-k-1;i++){
        a[i][k]=num++;
   }
    for(j=k;j<N-k-1;j++){
        a[N-k-1][j]=num++;
   }
    for(i=N-k-1;i>k;i--){
        a[i][N-k-1]=num++;
   }
    for(j=N-k-1;j>k;j--){
        a[k][j]=num++;
   }
}
//判断N是否为基数
    if(1==N%2){
       a[N/2][N/2]=num;
    }
  //打印显示螺旋矩阵
  for(i=0;i<N;i++){
    for(j=0;j<N;j++){
          printf("%3d ",a[i][j]);
  }
    printf("\n");
  }
}
运行结果---->
运行结果.jpg

相关文章

  • 54. Spiral Matrix

    题目分析 螺旋打印矩阵。暴力实现~ 代码

  • 打印螺旋矩阵

    题目要求 打印矩阵 打印矩阵 打印题目要求的矩阵(当N=6时)

  • First week can't solve.

    螺旋数组 这道题让我们搓一个螺旋丸,将一个矩阵按照螺旋顺序打印出来,我们只能一条边一条边的打印,首先我们要从给定的...

  • 打印n阶螺旋矩阵

    分析:1.首先矩阵对应一个二维数组,所以我们要定义一个二维数组a2.矩阵边长为l=n,最大值为l x l3.填充数...

  • Python实现螺旋矩阵

    螺旋矩阵 什么是螺旋矩阵? 螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大...

  • Python螺旋打印N*N矩阵

    参考资料:http://blog.csdn.net/qq_26392583/article/details/614...

  • 笔试题整理(六)

    去哪儿 一、打印n*n的螺旋矩阵的第i行,第j列的数字。例如4*4的矩阵第3行第3列的数字为15。

  • 螺旋矩阵

    螺旋矩阵 1.想法: 对于矩阵的螺旋我们可以规约为4个方向 2.代码:

  • 螺旋矩阵

    递归 非递归

  • 螺旋矩阵

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1...

网友评论

    本文标题:打印螺旋矩阵

    本文链接:https://www.haomeiwen.com/subject/xizesctx.html