方阵顺时针旋转的实现代码
例如,如下的方阵:
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;
}
相关推荐
-
方阵顺时针旋转的实现代码
例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 顺时针旋转,却是如下结果: 13 9 5 114 10 6 215 11 7 316 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 *
-
java蓝桥杯历年真题及答案整理(小结)
蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 全排列 是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:ABC.ACB.BAC.BCA.CAB.CBA一共3!=3*2=6种情况. package Question1_9; import java.util.Scanner; import java.util.Vector; public class Question1 { public static
-
Android Camera实现旋转角度
本文实例为大家分享了Android Camera实现旋转角度的具体代码,供大家参考,具体内容如下 概述 相机图像数据都是来自于图像传感器(Image Sensor),相机模组出厂的时候有一个默认的取景方向,一般为以下两种,请留意相机模组中小人的方向 Sensor 安装默认都是 Sensor 的长边与手机的长边平行 将上述图1的模组装入手机,结果为下图 两颗模组不一定如图左右摆放,也可以上下摆放,只要遵循长边对长边即可 此时使用后摄预览或拍照,取景方向是正常的,而手机目前相对自然方向(正常竖屏使用
-
C语言算法练习之求二维数组最值问题
目录 一.问题描述 二.算法实例编译环境 三.算法实例实现过程 3.1.包含头文件 3.2.定义宏和声明数组 3.3.声明相关变量 3.4.输入数组(方阵)的阶 3.5.输出 “输入的数组” 3.6.计算每行最大数据中的 最小的那一个数字 3.7.计算每行最小数据中的 最大的那一个数字 四.经典算法实例程序 4.1.main.h文件 4.2.main.c文件 五.总结 一.问题描述 求二维数组最大最小值 问题的描述 如下几点所示 1.在n 行 n 列的二维整数数组中,按以下要求选出两个数. 2.
-
20行js代码实现的贪吃蛇小游戏
前言 最近在csdn上看到一位大神用20行代码就写出了一个贪吃蛇的小游戏,感觉被惊艳到了,就试着读了一下这段代码,阅读过程中不断为作者写法的巧妙而叫绝,其中我发现自己对运算符优先级和一些js的技巧不是很清楚,所以看完之后决定把思路分享出来,方便和我一样的小白学习. 我对代码稍稍做了些修改,并添加了一些注释,方便理解. 示例代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="
-
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
正文:为了使层次分明及便于阅读, 整个解决方案如下: 其中BitmapCutter.Core是图片的服务器端处理程序, 类图为: 简单说明下, 更多说明可查看源码注释 : Cutter为裁剪对象, 用于存储客户端通过AJAX提交的数据. Helper为图片处理类, 包括图片翻转(RotateImage()), 图片裁剪(GenerateBitmap()). Callback为服务器端图片处理类, 通过使用Cutter封装客户端AJAX提交的数据, 然后调用Helper中的方法来完成图片处理.
-
微信小程序 animation API详解及实例代码
动画水还是比较深的,这里只是简单介绍下小程序中动画的一些属性和注意事项,做动画前一定要整理好思路将动画一步步分解,再进行组合!这里只做引入. wx.createAnimation(object) 看官方介绍 1.创建一个动画实例animation.调用实例的方法来描述动画.最后通过动画实例的export方法导出动画数据传递给组件的animation属性. 2.调用动画操作方法后要调用 step() 来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画
-
javascript圆盘抽奖程序实现原理和完整代码例子
效果预览: 一.模拟抽奖的实现过程 旋转原理:当支持CSS3属性采用transform: rotate(角度deg)设置,当角度为正数时顺时针旋转,当为负数时逆时针旋转.如果是IE8及其以下,采用采用绝对定位设置top和left,模拟角度旋转. run方法,参数angle指角度 复制代码 代码如下: function run(angle) { if (isIE) { cosDeg = Math.cos(angle
-
javascript+css3开发打气球小游戏完整代码
效果知识点: css3画气球, 自定义属性运用,随机阵列, DOM元素操作,高级回调函数与参数复传,动态布局,鼠标事件,定时器运用,CSS3新增样式等. css代码如下: <style> {margin:0;padding:0;} body{background:#434343;overflow:hidden} .balloon{ position:absolute; left:0; top:0; margin:auto; width:160px; height:160px; 圆角: 左上 右
-
p5.js 毕达哥拉斯树的实现代码
本文介绍了p5.js 毕达哥拉斯树的实现代码,分享给大家,具体如下: 效果如下: 主要方法 translate() rotate() rect() push() pop() map() 主要思想 递归 草图 过程分解 一.毕达哥拉斯树的递归函数 function Pythagorian(x){ noStroke(); fill(107, 142, 35,map(x, 0, a, 150, 255));//根据正方形边长设置填充色 rect(0,0,x,x);//绘制当前的正方形 if(x <=
随机推荐
- mysql数据存储过程参数实例详解
- IBM DB2 日常维护汇总(三)
- dropload.js插件下拉刷新和上拉加载使用详解
- ThinkPHP模板Switch标签用法示例
- python使用正则表达式分析网页中的图片并进行替换的方法
- Android自定义圆形倒计时进度条
- 从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
- mongodb exception: $concat only supports strings, not NumberInt32解决办法
- SQL Server获取磁盘空间使用情况
- C++编程中私有和保护以及公有的类成员访问控制
- Android Rreact Native 常见错误总结
- Android判断touch事件点是否在view范围内的方法
- java中for循环删除集合陷阱
- C语言数据结构 快速排序实例详解
- java实现顺时针打印矩阵
- java处理数据库不支持的emoji表情符问题解决
- PHP微信支付结果通知与回调策略分析
- React 无状态组件(Stateless Component) 与高阶组件
- 基于pandas将类别属性转化为数值属性的方法
- ASP中Server.HTMLEncode用法(附自定义函数)