N*N矩阵的旋转 不开辟新空间
/*
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矩阵的旋转 不开辟新空间的更多相关文章
- [golang]图片按中心旋转后,新图的左顶点位置的偏移量
1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...
- linq 查询的结果会开辟新的内存吗?
一:背景 1. 讲故事 昨天群里有位朋友问:linq 查询的结果会开辟新的内存吗?如果开了,那是对原序列集里面元素的深拷贝还是仅仅拷贝其引用? 其实这个问题我觉得问的挺好,很多初学 C# 的朋友或多或 ...
- 嵌入式-C语言基础:malloc动态开辟内存空间
#include<stdio.h> #include<stdlib.h> int main() { // char *p;//定义一个野指针:没有让它指向一个变量的地址 // ...
- 【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, ...
- 【Isabella Message】 【SPOJ - ISAB】【模拟】【矩阵的旋转】
思路 题目链接 题意:题目中先给了一个N阶矩阵样子的字符,后给了一个mask,然后又给出你应该认识的一些单词,最后是让你输出最终字典序最小的一句话. 思路:根据题目要求模拟即可.这里会用到string ...
- LeetCode48, 如何让矩阵原地旋转90度
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第29篇,我们来看一道简单的矩阵旋转问题. 题意 题目的要求很简单,给定一个二维方形矩阵,要求返回矩阵旋转90度之后的 ...
- 54. Spiral Matrix(矩阵,旋转打印)
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- [golang]按图片中心旋转后的新图左顶点和原图左顶点的偏移量计算
1 前言 略,作为记录使用 2 代码 /** * @Author: FB * @Description: * @File: RotateSample.go * @Version: 1.0.0 * @D ...
- 【Android】Android内存溢出问题---用自行开辟的空间进行对内存管理
public static Bitmap readBitmap(String path) { BitmapFactory.Options options = new BitmapFactory.Opt ...
随机推荐
- 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除
批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...
- Jsoup访问https网址异常SSLHandshakeException(已解决)
爬取网页遇到的目标站点证书不合法问题. 使用jsoup爬取解析网页时,出现了如下的异常情况. javax.net.ssl.SSLHandshakeException: sun.security.val ...
- Error:Some file crunching failed, see logs for details
Information:Gradle tasks [:myapp2:assembleDebug] Error:Some file crunching failed, see logs for deta ...
- SQL server 2014使用导出数据为Excel
1.打开SQL server 2014,连接至数据库引擎 2.在要导出的数据库上右击,选择"任务->导出数据" 3.数据源选择"SQL Server Native ...
- paddlepaddle实现猫狗分类
目录 1.预备工作 1.1 数据集准备 1.2 数据预处理 2.训练 2.1 模型 2.2 定义训练 2.3 训练 3.预测 4.参考文献 声明:这是我的个人学习笔记,大佬可以点评,指导,不喜勿喷.实 ...
- hdu第十场Cyclic
本题主要是对用容斥的使用,正难则反,对于要求满足题意的可以求不满足题意的 先考虑对于长度至少为2的连续序列,易得其排列C(n,1)*(n-2)!,意为从剩下n个数字中选取连续的两个. 方法总计为n,即 ...
- 解决win10下MySQL 8.0登录Access denied for user 'root'@'localhost' (using password: YES)的问题
近些时间在开始学MySQL,安装挺顺利的,按照网上现成的教程就能安装成功. 但是,在输入 mysql -uroot -p 再输入密码时,遇到了这个情况 Access denie ...
- jQuery表单校验
主要特性: 表单提交前对所有数据进行校验,不符合不让提交(validate) 如果表单校验不通过,自动focus到第一个错误的域 自动在控件后面显示错误提示内容(error message) 支持根据 ...
- JavaOOP 第二章继承
一 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具 ...
- Java_转换流和缓冲流
今日内容介绍 转换流 缓冲流 1 转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamR ...