`
taojianrong
  • 浏览: 11260 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

转方阵

阅读更多
 
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
例如,如下的方阵:
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语言写的旋转方阵问题

    用C语言写的旋转方阵,我的旋转方阵是逆时针的,用递归写的

    数字旋转方阵(java)

    在本实验中,任务是创建一个Java程序,用于输出顺时针旋转的数字方阵。这个方阵的特性是从中心开始,数字按照顺时针方向填充。给定的代码片段是用C++编写的,但我们可以将其转换为Java语言,并解释其工作原理。 ...

    数字旋转方阵 分治法——C++代码

    课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的

    数字旋转方阵(顺时针).pptx

    数字旋转方正实现,方阵旋转问题分析演示,C++代码实现;

    C 打印输出旋转方阵.rar

    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、...

    数字旋转方阵.docx(C/C++)-实验报告/课程设计

    【数字旋转方阵】是一种特殊的矩阵布局,其中数字按照特定的顺序填充,使得从外向内每一圈的数字依次顺时针或逆时针旋转。本实验报告关注的是使用C/C++编程语言来设计和实现一个9阶数字旋转方阵,并对其算法的时间...

    分治与减治算法实验:题目1 数字旋转方阵程序设计.docx

    在本实验中,我们利用了分治法的思想来解决“数字旋转方阵”的问题。 #### 2. 数字旋转方阵的具体实现过程 数字旋转方阵是一种特殊的矩阵结构,其中矩阵的数字按顺时针方向旋转填充。在这个过程中,我们从矩阵的最...

    C#小程序(杨辉三角(含等腰)旋转方阵 阶层)

    "n阶方阵的对角元素之和.doc"可能讨论了如何计算n阶矩阵主对角线上的元素总和,这与杨辉三角的行和规律有关;"数字旋转方阵.doc"可能是关于如何实现矩阵旋转的详细步骤;而"等腰杨辉三角.doc"则可能深入探讨了等腰...

    转方阵 矩阵旋转

    把输入 的 数字方阵顺时针旋转 90° 。

    转方阵.cpp

    解决方阵旋转问题 便于大家学习和借鉴 这是用C语言写的代码 有不好的地方欢迎大家给与支出 O ∩ ∩ O谢谢

    ACM旋转方阵算法源码

    撒大厦的爱仕达萨达阿速达四大四大是的阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿阿斯顿

    2020华为春招–N阶方阵旋转(python)

    题目描述:输入一个N阶方阵(0&lt;N&lt;10),输出此方阵顺时针旋转M(0&lt;=M&lt;=10000)次后的方阵 题目示例:三阶方阵,围绕方阵中心顺时针旋转 输入描述: (1) 第一行输入一个正整数N (0&lt;N&lt;10) (2) 接下来...

    方阵顺时针旋转的实现代码

    方阵顺时针旋转是一种常见的矩阵操作,常用于图像处理、数据转换等领域。在这个问题中,我们关注的是如何使用C++编程语言实现一个函数来完成这个任务。给出的代码示例提供了一个解决方案。 首先,我们需要理解...

    数字方阵--汇编语言课程设计报告

    《数字方阵--汇编语言课程设计报告》深入解析 在计算机科学领域,汇编语言是一种低级编程语言,它与机器语言紧密相关,但比机器语言更易读、更便于编写。本报告将详细探讨如何使用汇编语言实现一个数字方阵的显示...

    c语言 完成螺旋方阵的建立,输出。

    螺旋方阵是一种特殊的矩阵结构,它的元素按照从左上角开始,顺时针或逆时针依次填充。在C语言中实现螺旋方阵的建立和输出,需要掌握基本的数组操作、循环控制以及条件判断。下面我们将详细探讨如何用C语言来实现这个...

    数据结构实验报告(2) - 栈与队列.docx

    方阵的每一层可以看作是一个小的旋转方阵,通过递归地填充每一层,可以实现整个方阵的旋转填充。 总的来说,这个实验报告涵盖了数据结构的基础知识,包括栈、队列的特性、操作及其在实际问题中的应用,同时也强调了...

    2021“蓝桥杯”全国软件专业人才设计与创业大赛题目-预赛借鉴.pdf

    5. 转方阵问题: 这是一个关于矩阵操作的编程问题。题目要求实现顺时针旋转方阵,这涉及到数组元素的重新排列。代码中,`rotate`函数通过创建一个新的数组`y`来存储旋转后的方阵,然后将`y`的内容复制回原数组`x`。...

    C一些有用的程序_C语言_outerpja_

    在本压缩包文件中,我们聚焦于C语言编程的一些实用技巧和算法实现,主要涉及到整数链表的操作、数组去重排序以及年历和旋转方阵的生成。这些知识点是C语言学习者必备的基础技能,也是算法设计和数据结构的重要组成...

    C++小程序合集.rar

    打印旋转方阵, 二分查找算法, 二分法求方程根, 汉诺塔, 检查数组是否越界, 建立学生成绩管理系统, 金卡帐目管理, 拷贝构造函数, 浏览文本文件, 模拟抛硬币所得正面的频率图, 探询路径, 文本文件复制, 我...

Global site tag (gtag.js) - Google Analytics