我是靠谱客的博主 等待汽车,最近开发中收集的这篇文章主要介绍剑指offer--面试题29:顺时针打印矩阵,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


#include<stdio.h>
void Print_Circle(int (*A)[3],int rows,int cols,int start)
{
	int endX=cols-1-start;
	int endY=rows-1-start;
	//从左到右打印一行
	for(int i=start;i<=endX;++i)
		printf("%d ",A[start][i]);
	//从上到下打印一列
	if(start<endY)//
		for(i=start+1;i<=endY;++i)
			printf("%d ",A[i][endX]);
	//从右到左打印一行
	if(start<endX && start<endY)
		for(i=endX-1;i>=start;--i)
			printf("%d ",A[endY][i]);
	//从下到上打印一列
	if(start<endX && start<endY-1)
		for(i=endY-1;i>=start+1;--i)
			printf("%d ",A[i][start]);


}
void Print_Matrix(int(*A)[3],int rows,int cols)
{
	if(A==NULL||cols<0 ||rows<0 )
		return;
	for(int start=0; 2*start<rows && 2*start<cols;start++)
		Print_Circle(A,rows,cols,start);
}

void main()
{
	int A[4][3]={1,2,3,10,11,4,9,12,5,8,7,6};
	Print_Matrix(A, 4, 3);
	printf("n");
	/*//int *a=new int[1000];//这样是定义一个数组a[1000],并没有初始化,里面的值可能随机出。
	//int *a=new int[1000]();//后面加一个括号就是初始化了,这样a[1000]里面所有值都是0
	int** A = new int*[4];
    for( i = 0; i < 4; ++i)
        delete[] (int*)A[i];
    delete[] A;
*/
}


最后

以上就是等待汽车为你收集整理的剑指offer--面试题29:顺时针打印矩阵的全部内容,希望文章能够帮你解决剑指offer--面试题29:顺时针打印矩阵所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部