天天看点

NOI的1.8.1矩阵交换行

描述

给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。

输入

输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。

第6行包含两个整数m、n,以一个空格分开。(1 <= m,n <= 5)

输出

输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。

样例输入

1 2 2 1 2

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

3 0 8 2 4

1 5

样例输出

3 0 8 2 4

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

1 2 2 1 2

解法:

import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int d=0;
		int a[] []=new int[5][5];
		for(int i=0;i<5;i++) {
			for(int j=0;j<5;j++) {
				a[i][j]=in.nextInt();
			}
		}
		int n=in.nextInt();
		int m=in.nextInt();
		for(int i=0;i<5;i++) {
			d=i;
			if(i==n-1) {
				i=m-1;
			}
			else if(i==m-1) {
				i=n-1;
			}
			for(int j=0;j<5;j++) {
				System.out.print(a[i][j]+" ");
			}
			System.out.println();	
			i=d;
		}		
	}
}
           

注意:

题目中的m和n的范围是1到5,但是数组的范围为0到4,所以两者需一致,开始我没有注意这一点,程序就会出现错误。