行列方阵顺时针旋转

系统 1546 0

时间紧张,先记一笔,后续优化与完善。

    例如,如下的方阵:

 1  2  3  4

 5  6  7  8

 9 10 11 12

    13 14 15 16

    顺时针旋转,是却如下结果:


13  9  5  1
14 10  6  2
15 11  7  3
16 12  8  4

    每日一道理
书籍好比一架梯子,它能引领人们登上文化的殿堂;书籍如一同把钥匙,它将帮助我们开启心灵的智慧之窗;书籍犹如一条小船,它会载着我们驶向知识的海洋。
    #include <stdio.h>

void rotate(int* x, int rank)

{

	int* y = (int*)malloc(sizeof(int) * rank * rank);  



	for(int i=0; i<rank * rank; i++)

	{

         // 以原第一行停止分析  一行数变成一同列  以原第一列为例,变成一同行。  (i%rank)*rank使列变成行   rank-(i/rank)-1) 使行变成列

		y[(i%rank)*rank+(rank-(i/rank)-1) ] = x[i];  

	}



	for(i=0; i<rank*rank; i++)

	{

		x[i] = y[i];

	}



	free(y);

}



int main(int argc, char* argv[])

{

	int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

	int rank = 4;



	rotate(&x[0][0], rank);



	for(int i=0; i<rank; i++)

	{

		for(int j=0; j<rank; j++)

		{

			printf("%4d", x[i][j]);

		}

		printf("\n");

	}



	return 0;

}
  

文章结束给大家分享下程序员的一些笑话语录: 一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。

行列方阵顺时针旋转


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论