矩阵翻转

晓萌最近在做一个翻转图片的应用,你可能也知道,图片其实是由一个个的点组成的。于是,晓萌想先做一个可以翻转矩阵的程序,来解决他问题的核心部分。

输入格式

输入第一行包括由空格分开的整数 M,N,T(0<N,M<200),T 的值为 0 或 1。其中 M 和 N 分别表示待处理矩阵的行数与列数,T 为 0 时表示左右翻转,为 1 时表示上下翻转。

之后的 M 行,每行包括由空格分隔的 N 个整数,依次为输入矩阵的每一行的数据。

输出格式

输出包括 M 行 N 列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵。

样例输入

4 4 1
1 2 3 4
5 6 7 8
9 0 1 2
3 4 5 6

样例输出

3 4 5 6
9 0 1 2
5 6 7 8
1 2 3 4 

问题链接:JSK-5 矩阵翻转

问题描述:(略)

问题分析

前后翻转可以用双下标来处理,开始时候下标is为最小值,下标ie为最大值,交换这两个下标所指元素后,下标分别增一和减一直到不满足is<ie为止。上下翻转的做法也一样。

这种做法是一种套路。

程序说明

C语言程序中交换2个变量的内容需要一个临时变量,其做法是一种套路;C++语言程序中则可以使用函数swap()实现2个变量内容的交换,代码要简洁许多。

参考链接:(略)

题记:编程有各种各样的套路,基本套路需要玩得很熟练。

AC的C语言程序如下:

/* JSK-5 矩阵翻转 */#include <stdio.h>#define N 200
int a[N][N];int main()
{int n, m, t, i, j;scanf("%d%d%d", &n, &m, &t);for(i = 0; i < n; i++)for(j = 0; j < m; j++)scanf("%d", &a[i][j]);int is, ie;if(t == 0) {for(i = 0; i < n; i++) {is = 0, ie = m - 1;while(is < ie) {int tmp = a[i][is];a[i][is] = a[i][ie];a[i][ie] = tmp;is++, ie--;}}} else if(t == 1) {for(j = 0; j < m; j++) {is = 0, ie = n - 1;while(is < ie) {int tmp = a[is][j];a[is][j] = a[ie][j];a[ie][j] = tmp;is++, ie--;}}}for(i = 0; i < n; i++) {for(j = 0; j < m; j++)printf("%d ", a[i][j]);printf("\n");}return 0;
}

AC的C++语言程序如下:

/* JSK-5 矩阵翻转 */#include <bits/stdc++.h>using namespace std;const int N = 200;
int a[N][N];int main()
{int n, m, t;cin >> n >> m >> t;for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)cin >> a[i][j];if(t == 0) {for(int i = 0; i < n; i++) {int is = 0, ie = m - 1;while(is < ie) {swap(a[i][is], a[i][ie]);is++, ie--;}}} else if(t == 1) {for(int j = 0; j < m; j++) {int is = 0, ie = n - 1;while(is < ie) {swap(a[is][j], a[ie][j]);is++, ie--;}}}for(int i = 0; i < n; i++) {for(int j = 0; j < m; j++)cout << a[i][j] << " ";cout << endl;}return 0;
}

JSK-5 矩阵翻转【入门】相关推荐

  1. c语言编程将图片上下翻转,C语言实现矩阵翻转(上下翻转、左右翻转)

    C语言实现矩阵翻转 上下翻转与左右翻转 实例代码: #include void matrix (int m, int n, int t) { int arr[m][n]; int i, j, k; f ...

  2. python 二维矩阵翻转

    二维矩阵翻转 # N * N的二维矩阵 # 沿上下中线翻转 # 沿左右中线翻转 # 沿-45度对角线翻转 # 沿45度对角线翻转matrix3 = [[1, 2, 3, 4, 5], [6, 7, 8 ...

  3. Matlab矩阵数组入门指南

    Matlab矩阵数组入门指南 介绍 Matlab是一种高级技术计算语言,广泛应用于工程.科学和经济分析领域,可以用于数据可视化.数值计算等.本文将着重介绍Matlab中的矩阵数组.矩阵数组是Matla ...

  4. 蓝桥试题 算法提高 矩阵翻转

    21-22-1蓝桥训练1 D.试题 算法提高 矩阵翻转 问题描述: Ciel有一个N*N的矩阵,每个格子里都有一个整数.N是一个奇数,设X = (N+1)/2.Ciel每次都可以做这样的一次操作:他从 ...

  5. c语言实现上下左右移动,C语言实现矩阵翻转(上下翻转、左右翻转)分享

    --想了解C语言实现矩阵翻转(上下翻转.左右翻转)分享的全部内容且更多的C语言教程关注 C语言实现矩阵翻转 上下翻转与左右翻转 实例代码: #include void matrix (int m, i ...

  6. 计蒜客挑战难题:矩阵翻转

    晓萌最近在做一个翻转图片的应用,你可能也知道,图片其实是由一个个的点组成的.于是,晓萌想先做一个可以翻转矩阵的程序,来解决他问题的核心部分. 输入第一行包括由空格分开的整数M.N.T(0 < M ...

  7. C语言 矩阵翻转,旋转,螺旋输出

    问题:为什么矩阵要用一维数组表示呢? 因为我对C语言还很不熟,在我写的过程中,因为要抽成函数,二维数组的传参怎么写编译都不通过(脑子里都是Java 的语法).而在C语言中,二维数组在内存中是连续的,表 ...

  8. 蓝桥杯矩阵翻转java_矩阵翻转硬币 蓝桥杯

    解题思路分析:           n=2, m=3 翻硬币过程(1代表正面,0代表反面): step 1 : step 2 : 当(x, y) = (1, 1)时, (i * x,  j * y)将 ...

  9. 矩阵相乘入门,两个矩阵相乘

    •矩阵:矩阵可以看成一个n×m的数表,用二维数组表示 •矩阵乘法:定义矩阵A,B.A和B可以乘法操作当且仅当A的大小是a×b,B的大小是b×c,设矩阵C=AB,则C的大小是a×c,且有 最普通的矩阵乘 ...

最新文章

  1. 1027 Colors in Mars
  2. 1045 Favorite Color Stripe (30 分)【难度: 中 / 知识点: DP】
  3. python numpy 子数组_Python利用Numpy数组进行数据处理(一)
  4. zipfile不能解压分卷压缩的文件
  5. [转载] 杜拉拉升职记——23 “You deserve it”的两种解释
  6. MySQL高级 - 常用工具 - mysqlimport与source
  7. 一线大厂为什么对免费的开源项目这么热衷?
  8. 面试题 为什么用线程池?解释下线程池参数
  9. java headless_使用Chrome Headless 快速实现java版数据的抓取
  10. python 文件按行读写
  11. Mac下VirtualBox虚拟机Win7与主机共享文件夹
  12. 实现粗糙表面_什么是表面粗糙度,你真懂吗?
  13. 即时通讯IM的安全性比较
  14. eclipse如何设置断点断点处运行快捷键
  15. matlab 分式拟合,如何用matlab拟合微分方程
  16. 精心整理2万字c++知识点
  17. xml文件导入wps_Office12使用XML格式存储文件回击WPS
  18. Windows 更新 升级 8007003错误 800tb109错误 文件没有正确签名 很难确定你的电脑能否运行win10【解决方法】
  19. 软件即服务已经过时 硬件即服务促成云计算
  20. 罗技craft写java怎么样_评测| 入手罗技CRAFT无线键盘后才知道什么叫奢华

热门文章

  1. 基于GDAL实现的PCA变换(主成分分析)
  2. 记录一次游戏服务器的压测调优记录(Golang语言)
  3. 使用PyQt来编写第一个Python GUI程序
  4. C#图片处理之:色彩调整
  5. linux yum未找到命令,解决yum命令失效,vim: command not found
  6. 编译lzlib mysql5.6_CentOS下编译安装MySQL5.6
  7. android gridvie item,Android开发―解决自定义GridView高度第一个item高度异常问题
  8. 九、索引与执行计划、索引的分类
  9. fullcalendar内容如何默认展示一条其他的点击展示_LinkedIn广告全指南:如何从零开始成为Linkedin广告高手?...
  10. linux 空信息,为什么recv()函数收到空消息?