1. 程式人生 > >【計蒜客】矩陣翻轉

【計蒜客】矩陣翻轉

題目描述

曉萌最近在做一個翻轉圖片的應用,你可能也知道,圖片其實是由一個個的點組成的。
於是,曉萌想先做一個可以翻轉矩陣的程式,來解決他問題的核心部分。

輸入格式
輸入第一行包括由空格分開的整數 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 

AC程式碼

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int row = sc.nextInt();
		int col = sc.nextInt();
		int flag = sc.nextInt();
		
		int[][] arr = new int[row][col];
		for(int i = 0; i < row; i++){
			for(int j = 0; j < col; j++){
				arr[i][j] = sc.nextInt();
			}
		}
		int temp = 0;
		if(flag == 0){
			for(int j = 0; j < col/2; j++){
				for(int i = 0; i < row; i++){
					temp = arr[i][j];
					arr[i][j] = arr[i][col-j-1];
					arr[i][col-j-1] = temp; 
				}
			}
		}
		
		if(flag == 1){
			for(int i = 0; i < row/2; i++){
				for(int j = 0; j < col; j++){
					temp = arr[i][j];
					arr[i][j] = arr[row-i-1][j];
					arr[row-i-1][j] = temp; 
				}
			}
		}
		for(int i = 0; i < row; i++){
			for(int j = 0; j < col; j++){
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}
}