zoukankan      html  css  js  c++  java
  • 剑指offer——面试题29:顺时针打印矩阵

     1 #include"iostream"
     2 #include"stdio.h"
     3 using namespace std;
     4 
     5 void PrintMatrixInCircle(int** matrix,int rows,int columns,int start)
     6 {
     7     int endRow=rows-1-start;
     8     int endCol=columns-1-start;
     9 
    10     for(int i=start;i<=endCol;i++)
    11         cout<<matrix[start][i]<<' ';
    12     cout<<endl;
    13     if(endRow>start)
    14     {
    15         for(int i=start+1;i<=endRow;i++)
    16             cout<<matrix[i][endCol]<<' ';
    17         cout<<endl;
    18     }
    19 
    20     if(endRow>start&&endCol>start)
    21     {
    22         for(int i=endCol-1;i>=start;i--)
    23             cout<<matrix[endRow][i]<<' ';
    24         cout<<endl;
    25     }
    26     if(endRow-1>start&&endCol>start)
    27     {
    28         for(int i=endRow-1;i>start;i--)
    29             cout<<matrix[i][start]<<' ';
    30         cout<<endl;
    31     }
    32 }
    33 
    34 void PrintMatrixClockWisely(int** matrix,int rows,int columns)
    35 {
    36     if(matrix==nullptr || rows<=0 || columns<=0)
    37         return;
    38     int start=0;
    39     while(rows>2*start&&columns>2*start)
    40     {
    41         PrintMatrixInCircle(matrix,rows,columns,start);
    42         start++;
    43     }
    44     cout<<endl<<endl;
    45 }
    46 
    47 void Test(int rows,int cols)
    48 {
    49     int** matrix=new int*[rows];
    50 
    51     for(int i=0;i<rows;i++)
    52     {
    53         matrix[i]=new int[cols];
    54         for(int j=0;j<cols;j++)
    55         {
    56             matrix[i][j]=i*cols+j;
    57         }
    58     }
    59     PrintMatrixClockWisely(matrix,rows,cols);
    60 }
    61 
    62  int main()
    63  {
    64     Test(1,1);
    65     Test(1,2);
    66     Test(2,1);
    67     Test(5,5);
    68 
    69     return 0;
    70  }
    View Code
  • 相关阅读:
    C语言指针专题——如何理解指针
    C语言指针专题——序
    Java 第14章 字符串
    Java截图笔记
    Java 第五章 循环结构1
    Java 第六章 循环结构2
    Java 第13章 带参数的方法
    Java 第11章 类的无参方法
    Java 第四章 选择结构2
    Java 第三章 选择结构1
  • 原文地址:https://www.cnblogs.com/acm-jing/p/10429242.html
Copyright © 2011-2022 走看看