/*

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. MyBatis一对多和多对多xml配置

    MyBatis一对多和多对多xml配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ma ...

  2. 为什么选择 Spring 作为 Java 框架

    1. 概述 在本文中,我们将讨论 Spring 作为最流行的 Java 框架之一的主要价值体现. 最重要的是,我们将尝试理解 Spring 成为我们选择框架的原因.Spring 的详细信息及其组成部分 ...

  3. JSP一二章笔试题

    一. 什么是B/S架构,什么是C/S架构B/S(Browser/Server) 浏览器/服务器 C/S(Client/Server) 客户端/服务器 二. B/S架构的工作原理 浏览器请求服务器 通过 ...

  4. ListView 控件总结

     1.ListView类           1.常用的基本属性:         (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有 ...

  5. Linux 下实践 VxLAN:虚拟机和 Docker 场景

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大家关注,二维码文末可以扫. 在上篇文章 ...

  6. ArchSummit分享 | 高德地图App架构演化与实践

    讲师介绍 郝仁杰,高德地图无线开发专家.在7月13日落幕的2019年ArchSummit峰会上就高德地图近几年的App架构演化和实践进行了分享. 背景概述 高德是国内领先的数字地图内容.导航和位置服务 ...

  7. 【MySQL】Unknown column 'column_name' in 'field list'

    使用 INSERT INTO - SELECT FROM - ON DUPLICATE KEY UPDATE 时遇到了这个问题,百思不得其解

  8. 【未解决】iOS QBImagePickerController访问相册没有取消和确定按钮

    这两天调程序时遇到了这个问题,如图所示: 感觉这问题也是奇葩………… 用系统的 UIImagePickerController 替换后就正常了.看来是 QBImagePickerController ...

  9. scripts may close only the windows that were opened by it 浏览器JS控制无法关闭当前页面

    非window.open形式打开的子页面用js的window.close在chrome下就会提示scripts may close only the windows that were opened ...

  10. 【Java例题】5.4 子串出现的次数

    4. 输入一个字符串s,再输入另一个字符串t,在s中查找t出现的次数. package chapter5; import java.util.Scanner; public class demo4 { ...