/* (程序头部注释开始) * 程序的版权和版本声明部分 * 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); } }