对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
#include <stdio.h> #include <stdlib.h> void rotate(int* x, int rank) { int* y = (int*)malloc( rank*rank*sizeof(int) ); // 填空 int i; for(i=0; i<rank * rank; i++) { 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(void) { int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int rank = 4; int i,j; rotate(&x[0][0], rank); for(i=0; i<rank; i++) { for(j=0; j<rank; j++) { printf("%4d", x[i][j]); } printf("\n"); } return 0; }
相关推荐
用C语言写的旋转方阵,我的旋转方阵是逆时针的,用递归写的
在本实验中,任务是创建一个Java程序,用于输出顺时针旋转的数字方阵。这个方阵的特性是从中心开始,数字按照顺时针方向填充。给定的代码片段是用C++编写的,但我们可以将其转换为Java语言,并解释其工作原理。 ...
课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
数字旋转方正实现,方阵旋转问题分析演示,C++代码实现;
C 打印输出旋转方阵,其中螺旋方阵形式如下,类似矩阵: 1 12 11 10 2 13 16 9 3 14 15 8 4 5 6 7 设row,column分别代表行、列坐标,变量p从1到n2将p依次存入数组a[row][column]中,要确定row、...
【数字旋转方阵】是一种特殊的矩阵布局,其中数字按照特定的顺序填充,使得从外向内每一圈的数字依次顺时针或逆时针旋转。本实验报告关注的是使用C/C++编程语言来设计和实现一个9阶数字旋转方阵,并对其算法的时间...
在本实验中,我们利用了分治法的思想来解决“数字旋转方阵”的问题。 #### 2. 数字旋转方阵的具体实现过程 数字旋转方阵是一种特殊的矩阵结构,其中矩阵的数字按顺时针方向旋转填充。在这个过程中,我们从矩阵的最...
"n阶方阵的对角元素之和.doc"可能讨论了如何计算n阶矩阵主对角线上的元素总和,这与杨辉三角的行和规律有关;"数字旋转方阵.doc"可能是关于如何实现矩阵旋转的详细步骤;而"等腰杨辉三角.doc"则可能深入探讨了等腰...
把输入 的 数字方阵顺时针旋转 90° 。
解决方阵旋转问题 便于大家学习和借鉴 这是用C语言写的代码 有不好的地方欢迎大家给与支出 O ∩ ∩ O谢谢
撒大厦的爱仕达萨达阿速达四大四大是的阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿
题目描述:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵 题目示例:三阶方阵,围绕方阵中心顺时针旋转 输入描述: (1) 第一行输入一个正整数N (0<N<10) (2) 接下来...
方阵顺时针旋转是一种常见的矩阵操作,常用于图像处理、数据转换等领域。在这个问题中,我们关注的是如何使用C++编程语言实现一个函数来完成这个任务。给出的代码示例提供了一个解决方案。 首先,我们需要理解...
《数字方阵--汇编语言课程设计报告》深入解析 在计算机科学领域,汇编语言是一种低级编程语言,它与机器语言紧密相关,但比机器语言更易读、更便于编写。本报告将详细探讨如何使用汇编语言实现一个数字方阵的显示...
螺旋方阵是一种特殊的矩阵结构,它的元素按照从左上角开始,顺时针或逆时针依次填充。在C语言中实现螺旋方阵的建立和输出,需要掌握基本的数组操作、循环控制以及条件判断。下面我们将详细探讨如何用C语言来实现这个...
方阵的每一层可以看作是一个小的旋转方阵,通过递归地填充每一层,可以实现整个方阵的旋转填充。 总的来说,这个实验报告涵盖了数据结构的基础知识,包括栈、队列的特性、操作及其在实际问题中的应用,同时也强调了...
5. 转方阵问题: 这是一个关于矩阵操作的编程问题。题目要求实现顺时针旋转方阵,这涉及到数组元素的重新排列。代码中,`rotate`函数通过创建一个新的数组`y`来存储旋转后的方阵,然后将`y`的内容复制回原数组`x`。...
在本压缩包文件中,我们聚焦于C语言编程的一些实用技巧和算法实现,主要涉及到整数链表的操作、数组去重排序以及年历和旋转方阵的生成。这些知识点是C语言学习者必备的基础技能,也是算法设计和数据结构的重要组成...
打印旋转方阵, 二分查找算法, 二分法求方程根, 汉诺塔, 检查数组是否越界, 建立学生成绩管理系统, 金卡帐目管理, 拷贝构造函数, 浏览文本文件, 模拟抛硬币所得正面的频率图, 探询路径, 文本文件复制, 我...