/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《二维数组操作——JAVA第四周》
* 作 者: 刘江波
* 完成日期: 2012 年 9 月 22 日
* 版 本 号: v3.1
* 对任务及求解方法的描述部分
* 问题描述:
/*3.将二维数组中值最大的元素和左上角元素对调,然后将值最小的元素与右下角元素对调。例如:
1 4 5 6
7 2 10 11
9 8 12 3,对调后结果
12 4 5 6
7 2 10 11
9 8 3 1 */
* 程序头部的注释结束
*/
public class TestNewMatrix {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] a={{1,4,5,6},{7,2,10,11},{8,9,12,3}};
printMatrix(a);//按二维方式输出数组
System.out.println();
printNewMatrix(a);//对调后输出数组
}
static void printMatrix(int[][] a){
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
static void printNewMatrix(int[][] a){
System.out.println("交换完成后的数组为:");
swapmax(a);
swapmin(a);
printMatrix(a);
}
static void swapmax(int[][] a){
int x1=0,y1=0;
int max = a[0][0];
int swap1;
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if(a[i][j] > max)
{
max = a[i][j];
x1 = i;
y1 = j;
}
}
}
swap1 = a[x1][y1];
a[x1][y1] = a[0][0];
a[0][0] = swap1;
}
static void swapmin(int [][] a){
int x2=0,y2=0;
int min = a[0][0];
int swap2;
for(int i = 0; i < a.length; i++)
{
for(int j = 0; j < a[i].length; j++)
{
if(a[i][j] < min)
{
min = a[i][j];
x2 = i;
y2 = j;
}
}
}
swap2 = a[x2][y2];
a[x2][y2] = a[a.length-1][a[0].length-1];
a[a.length-1][a[0].length-1] = swap2;
}
}