矩阵上下左右翻转

本文介绍了矩阵的上下翻转和左右翻转操作。对于上下翻转,从矩阵的最后一行开始逐行进行处理;而对于左右翻转,矩阵的每个元素与其对应位置的元素进行交换,实现翻转效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一:上下翻转

    上下翻转的遍历顺序是从最下面一行开始从左到右遍历,如图:

                             

#include<iostream>
#include<stdio.h>
using namespace std;
/**
  上下翻转,
*/
int main(){
  int M=4,N=3;
  int temp=0;
  int matrix[4][3] = {1,2,3,
                      4,5,6,
                      7,8,9,
                      10,11,12};
   printf("上下翻转之前\n");
for(int p1=0;p1<M;p1++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",matrix[p1][j]);
        printf("\n");
    }


 for(int p=0;p<M/2;p++){
         
### Java 中二维数组的上下左右翻转 对于二维数组,在Java中可以通过遍历并交换元素来实现上下左右翻转。以下是具体方法: #### 上下翻转 通过交换每一列的第一个元素到最后一个元素,第二个到倒数第二个,以此类推。 ```java public class ArrayFlip { public static void flipVertical(int[][] array) { int rows = array.length; for (int i = 0; i < rows / 2; i++) { for (int j = 0; j < array[i].length; j++) { // Swap elements at position [i][j] and [rows-i-1][j] int temp = array[i][j]; array[i][j] = array[rows - i - 1][j]; array[rows - i - 1][j] = temp; } } } public static void main(String[] args) { int[][] matrix = {{1, 2}, {3, 4}}; flipVertical(matrix); System.out.println(Arrays.deepToString(matrix)); } } ``` #### 左右翻转 同样地,可以逐行反转每行中的元素顺序[^1]。 ```java public class ArrayFlip { public static void flipHorizontal(int[][] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length / 2; j++) { // Swap elements at positions [i][j] and [i][array[i].length-j-1] int temp = array[i][j]; array[i][j] = array[i][array[i].length - j - 1]; array[i][array[i].length - j - 1] = temp; } } } public static void main(String[] args) { int[][] matrix = {{1, 2}, {3, 4}}; flipHorizontal(matrix); System.out.println(Arrays.deepToString(matrix)); } } ``` 需要注意的是,在处理这些变换时要小心防止`ArrayIndexOutOfBoundsException`异常的发生,即确保访问的有效索引范围[^2]。 为了验证上述函数的效果以及避免潜在错误,建议先打印原始矩阵再执行相应操作之后再次打印结果以便对比观察变化情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值