矩阵翻转90度
来源:互联网 发布:.net 数组包含 编辑:程序博客网 时间:2024/05/01 15:30
矩阵逆时针翻转90度:
假设矩阵中一数字坐标为(i,j),逆时针翻转后的坐标为(n-1-j,i),要实现这一过程,首先(i,j)->(j,i),即沿着左对角线将对角线两侧的数字交换,之后(j,i)->(n-1-j,i),即将矩阵沿着横中轴将上下行中的元素进行交换,如果是4*4矩阵,也就是交换1,4行和交换2,3行;
矩阵顺时针翻转90度:
假设矩阵中一数字坐标为(i,j),顺时针翻转后的坐标为(j,n-1-i),要实现这一过程,首先(i,j)->(j,i),即沿着左对角线将对角线两侧的数字交换,之后(j,i)->(j,n-1-i),即将矩阵沿着纵中轴将左右列中的元素进行交换,如果是4*4矩阵,也就是交换1,4列和交换2,3列;
#include <iostream>using namespace std;void swap(int &a, int &b){int temp;temp = a;a = b;b = temp;}void ni_fanzhuan(int a[][4], int n)//逆时针翻转90度{int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++)swap(a[i][j],a[j][i]);}for(i=0;i<n/2;i++)//注意这是i,即交换行{for(j=0;j<n;j++)swap(a[i][j],a[n-1-i][j]);}cout<<"数组逆时针旋转90度为:"<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout<<a[i][j]<<" ";cout<<endl;}}void shun_fanzhuan(int a[][4], int n)//顺时针翻转90度{int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++)swap(a[i][j],a[j][i]);}for(j=0;j<n/2;j++)//注意这是j,即交换列{for(i=0;i<n;i++)swap(a[i][j],a[i][n-1-j]);}cout<<"数组顺时针旋转90度为:"<<endl;for(i=0;i<n;i++){for(j=0;j<n;j++)cout<<a[i][j]<<" ";cout<<endl;}}int main(){int a[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int i,j;cout<<"原数组为:"<<endl;for(i=0;i<4;i++){for(j=0;j<4;j++)cout<<a[i][j]<<" ";cout<<endl;}ni_fanzhuan(a,4);int b[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};shun_fanzhuan(b,4);return 0;}
- 矩阵翻转90度
- 将一个矩阵翻转90度
- Python 矩阵翻转180度
- [LeetCode]—Rotate Image 矩阵90度翻转
- 矩阵翻转
- 矩阵翻转
- 矩阵翻转
- 矩阵翻转
- 翻转矩阵
- 矩阵翻转
- 矩阵翻转
- 【C】矩阵翻转(上下翻转、左右翻转)
- Matlab与线性代数 -- 矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90操作
- 矩阵翻转算法
- 矩阵的翻转
- 计蒜客005-矩阵翻转
- 矩阵翻转 贪心 水题
- 矩阵翻转硬币 蓝桥杯
- (二)、一步一步学GTK+之窗口
- C语言文件操作
- GNU ARM汇编伪操作(Directives) 命令集
- Singletons in Cocoa, are they evil?
- 瑞萨科技和Wipro携手推出针对3G手机的Linux解决方案
- 矩阵翻转90度
- (三)、一步一步学GTK+之布局
- struts2的s:iterator 标签 详解
- 转:onTouchEvent和onInterceptTouchEvent详细研究
- thinkPHP中内存耗尽的解决
- windows下用VC编译IJG库/libjpeg
- Nova boot vm 流程
- 用户体验设计师、UI 设计师和交互设计师之间的区别,如何挑选图书?
- 记忆化搜素,和递推法