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 ...
随机推荐
- Spring 自动生成getter和setter方法 tostring方法
添加maven依赖 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency& ...
- http面试笔试常考知识点(一)
1.什么是http HTTP是客户端和服务器端请求和应答的标准.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求.(我们称这个客户端)叫用 ...
- Python文件的两种用途
目录 一.Python文件的两种用途 一.Python文件的两种用途 python文件总共有两种用途,一种是执行文件:另一种是被当做模块导入. 编写好的一个python文件可以有两种用途: 脚本,一个 ...
- Gin框架 - 自定义错误处理
目录 概述 错误处理 自定义错误处理 panic 和 recover 推荐阅读 概述 很多读者在后台向我要 Gin 框架实战系列的 Demo 源码,在这里再说明一下,源码我都更新到 GitHub 上, ...
- 编写Django项目并使用uwsgi和nginx部署在Linux平台
内容转载自:我自己的博客地址 这是花费了一个月的时间摸索整理出来的一份总结.分享出来一方面是给新人一个借鉴,另一方面对自己也算是个备份. --- *** 整个Django项目: ├── example ...
- 性能测试-loadrunner参数化
工具:loadrunner11 ie8 场景:不同用户的登录 1.参数化功能: 让脚本使用批量的变化的数据测试,实现模拟不同数据/用户的行为 函数格式:返回值类型 函数名称(参数类型 参数,参数类型 ...
- linux初学者-数据库管理MariaDB篇
linux初学者-数据库管理MariaDB篇 MariaDB是一种数据库管理系统,是MySQL的一个分支,但是比MySQL更加优秀,可以说是MySQL的替代品.MariaDB使用的是SQL语句.下文将 ...
- 使用钉钉对接禅道的bug系统,实现禅道提的bug实时在钉钉提醒并艾特对应的开发人员处理
现在公司测试中有一个痛点是每次测试人员提完bug后,需要定期去提醒开发人员查看禅道的bug记录及修复bug. 导致测试人员在项目测试中不仅要测试整个软件,还要负起实时监督提醒功能的“保姆角色”,身心疲 ...
- 阿里技术面全A,终面却被产品经理拉下马。。。
大纲: 一.投递简历 二.准备面试 三.技术一面 四.健身房里的技术二面 五.产品经理的死亡三面 六.总结 一.投递简历 找内推.大公司投简历尽量找内推,无论是校招还是社招.校招可以去牛客网或知乎找, ...
- Rust生命周期bound用于泛型的引用
在实际编程中,可能会出现泛型引用这种情况,我们会编写如下的代码: struct Inner<'a, T> { data: &'a T, } 会产生编译错误: error[E0309 ...