/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:二维数组数据对调
* 作 者:薛广晨
* 完成日期:2011 年 09 月 18 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 将二维数组中值最大的元素和左上角元素对调,然后将值最小的元素与右下角元素对调。例如:
1 4 5 6
7 2 10 11
9 8 12 3,对调后结果
12 4 5 6
7 2 10 11
9 8 3 1
* 程序输出:
* 程序头部的注释结束
*/
package xgc.com;
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}};
System.out.println("数组为:");
printMatrix(a);//按二维方式输出数组
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("对调后数组为:");
max_number(a);
min_number(a);
printMatrix(a);
}
static void max_number(int[][] a)
{
int max = a[0][0];
int m = 0, n = 0;
int t;
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];
m = i;
n = j;
}
}
}
t = a[0][0];
a[0][0] = max;
a[m][n] = t;
}
static void min_number(int[][] a)
{
int min = a[0][0];
int m = 0, n = 0;
int t;
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];
m = i;
n = j;
}
}
}
t = a[a.length - 1][a[a.length - 1].length - 1];
a[a.length - 1][a[a.length - 1].length - 1] = min;
a[m][n] = t;
}
}
运行结果: