/*

N*N矩阵的旋转

不开辟新空间

programmer:qpz

time:2014-11-09

*/

#include <iostream>

using namespace std;

//#define MAX 3

const int MAX=3;

class cou{

private:

int x;

int y;

char num[MAX][MAX];

public:

cou(){}

cou(char num[MAX][MAX]);

void Prin(void);

void rotate(void);

};

void Init(char a[MAX][MAX],int n,int m);

int main(void)

{

char arr[MAX][MAX],time;

Init(arr,MAX,MAX);

cou Matrix;

Matrix=cou(arr);

Matrix.Prin();

cout<<"请输入旋转几次:"<<endl;

cin>>time;

time=time%4;

while(time--){

Matrix.rotate();

}

Matrix.Prin();

return 0;

}/*end main*/

void Init(char a[MAX][MAX],int n,int m)

{

int i,j;

cout<<"请输入矩阵3*3:"<<endl;

for(i=0;i<n;i++){

for(j=0;j<m;j++){

cin>>a[i][j];

}/*end for*/

}/*end for*/

}/*end Init*/

cou::cou(char num[MAX][MAX])

{

for(x=0;x<MAX;x++){

for(y=0;y<MAX;y++){

this->num[x][y]=num[x][y];

}/*end for*/

}/*end for*/

}/*end cou()*/

void cou::Prin(void)

{

for(int i=0;i<MAX;i++){

for(int j=0;j<MAX;j++){

cout<<num[i][j];

}/*end for*/

cout<<endl;

}/*end for*/

}/*end Prin()*/

void cou::rotate(void)

{

//cout<<"首先行列互换"<<endl;

for(x=0;x<MAX;x++){

for(y=1+x;y<MAX;y++)

{

num[x][y]=num[x][y]^num[y][x];

num[y][x]=num[x][y]^num[y][x];

num[x][y]=num[x][y]^num[y][x];

} /*end for*/

}/*end for*/

//Prin();

//cout<<endl<<"然后进行左右互换"<<endl;

for(x=0;x<MAX;x++){

for(y=0;y<MAX/2;y++){

num[x][y]=num[x][y]^num[x][MAX-y-1];

num[x][MAX-y-1]=num[x][y]^num[x][MAX-y-1];

num[x][y]=num[x][y]^num[x][MAX-y-1];

} /*end for*/

}/*end for*/

//Prin();

}

N*N矩阵的旋转 不开辟新空间的更多相关文章

  1. [golang]图片按中心旋转后,新图的左顶点位置的偏移量

    1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...

  2. linq 查询的结果会开辟新的内存吗?

    一:背景 1. 讲故事 昨天群里有位朋友问:linq 查询的结果会开辟新的内存吗?如果开了,那是对原序列集里面元素的深拷贝还是仅仅拷贝其引用? 其实这个问题我觉得问的挺好,很多初学 C# 的朋友或多或 ...

  3. 嵌入式-C语言基础:malloc动态开辟内存空间

    #include<stdio.h> #include<stdlib.h> int main() { // char *p;//定义一个野指针:没有让它指向一个变量的地址 // ...

  4. 【Python】将4*4数组旋转90度新数组

    需求:将一个4*4的数组90度旋转生成新的4*4数组 原来的4*4数组:[0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3][0, 1, 2, 3]90度旋转后的4*4数组:[0, ...

  5. 【Isabella Message】 【SPOJ - ISAB】【模拟】【矩阵的旋转】

    思路 题目链接 题意:题目中先给了一个N阶矩阵样子的字符,后给了一个mask,然后又给出你应该认识的一些单词,最后是让你输出最终字典序最小的一句话. 思路:根据题目要求模拟即可.这里会用到string ...

  6. LeetCode48, 如何让矩阵原地旋转90度

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第29篇,我们来看一道简单的矩阵旋转问题. 题意 题目的要求很简单,给定一个二维方形矩阵,要求返回矩阵旋转90度之后的 ...

  7. 54. Spiral Matrix(矩阵,旋转打印)

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

  8. [golang]按图片中心旋转后的新图左顶点和原图左顶点的偏移量计算

    1 前言 略,作为记录使用 2 代码 /** * @Author: FB * @Description: * @File: RotateSample.go * @Version: 1.0.0 * @D ...

  9. 【Android】Android内存溢出问题---用自行开辟的空间进行对内存管理

    public static Bitmap readBitmap(String path) { BitmapFactory.Options options = new BitmapFactory.Opt ...

随机推荐

  1. 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除

    批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...

  2. Jsoup访问https网址异常SSLHandshakeException(已解决)

    爬取网页遇到的目标站点证书不合法问题. 使用jsoup爬取解析网页时,出现了如下的异常情况. javax.net.ssl.SSLHandshakeException: sun.security.val ...

  3. Error:Some file crunching failed, see logs for details

    Information:Gradle tasks [:myapp2:assembleDebug] Error:Some file crunching failed, see logs for deta ...

  4. SQL server 2014使用导出数据为Excel

    1.打开SQL server 2014,连接至数据库引擎 2.在要导出的数据库上右击,选择"任务->导出数据" 3.数据源选择"SQL Server Native ...

  5. paddlepaddle实现猫狗分类

    目录 1.预备工作 1.1 数据集准备 1.2 数据预处理 2.训练 2.1 模型 2.2 定义训练 2.3 训练 3.预测 4.参考文献 声明:这是我的个人学习笔记,大佬可以点评,指导,不喜勿喷.实 ...

  6. hdu第十场Cyclic

    本题主要是对用容斥的使用,正难则反,对于要求满足题意的可以求不满足题意的 先考虑对于长度至少为2的连续序列,易得其排列C(n,1)*(n-2)!,意为从剩下n个数字中选取连续的两个. 方法总计为n,即 ...

  7. 解决win10下MySQL 8.0登录Access denied for user 'root'@'localhost' (using password: YES)的问题

        近些时间在开始学MySQL,安装挺顺利的,按照网上现成的教程就能安装成功.     但是,在输入 mysql -uroot -p     再输入密码时,遇到了这个情况 Access denie ...

  8. jQuery表单校验

    主要特性: 表单提交前对所有数据进行校验,不符合不让提交(validate) 如果表单校验不通过,自动focus到第一个错误的域 自动在控件后面显示错误提示内容(error message) 支持根据 ...

  9. JavaOOP 第二章继承

    一 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具 ...

  10. Java_转换流和缓冲流

    今日内容介绍 转换流 缓冲流 1 转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamR ...