手机
当前位置:查字典教程网 >编程开发 >C语言 >方阵顺时针旋转的实现代码
方阵顺时针旋转的实现代码
摘要:例如,如下的方阵:12345678910111213141516顺时针旋转,却是如下结果:13951141062151173161284复制...

例如,如下的方阵:

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;

}

【方阵顺时针旋转的实现代码】相关文章:

输出1000以内的素数的算法(实例代码)

关于《C和指针》的学习笔记

简单的汉诺塔问题解法代码

字符串中找出连续最长的数字字符串的实例代码

C实现分子沉积模拟的示例代码

浅析c/c++中函数的参数传递

C++输出斐波那契数列的两种实现方法

基于C中一个行压缩图的简单实现代码

C++实现:螺旋矩阵的实例代码

基于malloc与free函数的实现代码及分析

精品推荐
分类导航