/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 臧鹏
* 完成日期: 2012 年 9月 23日
* 版 本 号: 001
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:将二维数组中值最大的元素和左上角元素对调,然后将值最小的元素与右下角元素对调。例如:
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 Demo01 {
/**
* @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);//按二维方式输出数组
printNewMatrix(a);//对调后输出数组
}
static void printMatrix(int[][] a){
int i ,j;
for(i = 0;i<3;i++)
{
for(j = 0;j<4;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
static void printNewMatrix(int[][] a){
int max = a[0][0];
int p = 0,q = 0;
for(int h =0;h<3;h++)
{
for(int k = 0;k<4;k++)
{
if(a[h][k]>max)
{
max = a[h][k];
p = h;
q = k;
}
}
}
int min = a[0][0];
int m = 0,n = 0;
for(int h =0;h<3;h++)
{
for(int k = 0;k<4;k++)
{
if(a[h][k]<min)
{
min = a[h][k];
m = h;
n = k;
}
}
}
int temp1,temp2;
temp1 = a[0][0];
a[0][0] = max;
a[p][q] = temp1;
System.out.println();
printMatrix(a);
System.out.println();
int temp3;//恢复矩阵原样
temp3 = a[p][q];
a[p][q] = a[0][0];
a[0][0] = temp3;
temp2 = a[2][3];
a[2][3] = min;
a[m][n] = temp2;
printMatrix(a);
}
}