zoukankan      html  css  js  c++  java
  • 顺时针打印矩阵

    void PrintMatrixClockwise(int** arr, int columns, int rows)
    {
    	if (arr == nullptr || columns <= 0 || rows <= 0)
    		return;
    
    	int start = 0;
    	while (columns > start * 2 && rows > start * 2)
    	{
    		PrintMatrixInCircle(arr,columns,rows,start);
    		++start;
    	}
    	return;
    }
    void PrintMatrixInCircle(int** arr, int columns, int rows, int start)
    {
    	int endy = rows - start - 1;
    	int endx = columns - start - 1;
    	for (int i = start; i <= endx; ++i)
    	{
    		int number = arr[start][i];
    		std::cout << number << std::endl;
    	}
    	if (start < endy)
    	{
    		for (int i = start; i <= endy; ++i)
    		{
    			int number = arr[i][endx];
    			std::cout << number << std::endl;
    		}
    	}
    	if (start < endx && start < endy)
    	{
    		for (int i = endx-1; i >= start; --i)
    		{
    			int number = arr[endy][i];
    			std::cout << number << std::endl;
    		}
    	}
    	if (start < endx && start < endy - 1)
    	{
    		for (int i = endy-1; i >= start+1; --i)
    		{
    			int number = arr[i][start];
    			std::cout << number << std::endl;
    		}
    	}
    }
    

      

  • 相关阅读:
    c文件操作库
    双链常用操作2
    双向链表常用操作
    c队列操作
    c日期格式化操作之date
    单链常用操作类
    c字符串常用操作
    双向链表通用类
    c栈操作
    poj2509
  • 原文地址:https://www.cnblogs.com/yapp/p/14407664.html
Copyright © 2011-2022 走看看