JAVA-第周围实验-任务3-求矩阵元素换位。(编程思想)
JAVA--第四周实验--任务3--求矩阵元素换位。(编程思想)
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求矩阵元素换位 * 算法提示:.将二维数组中值最大的元素和左上角元素对调,然后将值最小的元素与右下角元素对调。例如: 1 4 5 6 7 2 10 11 9 8 12 3, 对调后结果 12 4 5 6 7 2 10 11 9 8 3 1 * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 20 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ import javax.swing.JOptionPane; public class Task_one { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //String str = JOptionPane.showInputDialog("输入一个任意整数"); // 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){ System.out.println("按二维方式输出数组:"); 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(); } System.out.println(); } static void printNewMatrix(int[][] a){ System.out.println("对调后输出数组:"); int i = 0,min = a[0][0],max =a[0][0],nx = 0,ny = 0,variable; for(i = 0;i <a.length;++i)//求最大值 { for(int j = 0;j <a[i].length;++j) { if(max<a[i][j]) { max=a[i][j]; nx = i; ny = j; } } } variable = a[0][0];//中间变量 a[0][0] = a[nx][ny]; a[nx][ny] = variable; for(i = 0;i <a.length;++i)//求最小值 { for(int j = 0;j <a[i].length;++j) { if(min>a[i][j]) { min=a[i][j]; nx = i; ny = j; } } } i = 0; variable = a[a.length-1][a[i].length-1]; a[a.length-1][a[i].length-1] = a[nx][ny]; a[nx][ny] = variable; printMatrix(a); } }
运行结果: