/**
*求一个4行4列的double型二维数组。创建一个方法显示数组并计算任意给定的行、
*列、主对角线、副对角线以及数组中的最大值。
* @author 莫笑书生
*@version V1.0 2010-01-22
*/
public class ArrayDemo {
/**
* 显示数组元素
* @param arrayName 指定数组
*/
public static void displayArray(double[][] arrayName){
System.out.println("数组元素为:");
for(int i=0;i<arrayName.length;i++){
for(int j=0;j<arrayName[i].length;j++){
System.out.print(arrayName[i][j]+" ");
}
}
System.out.println("/n");
}
/**
*计算指定行元素的和
* @param arrayName 指定数组
* @param row 指定行
* @return sum 指定行元素的和
*/
public static double sumOfRow(double[][] arrayName,int row){
double sum=0.0;
for(int j=0;j<arrayName[row].length;j++){
sum+=arrayName[row][j];
}
return sum;
}
/**
* 计算指定列元素的和
* @param arrayName 指定数组
* @param colum 指定列
* @return sum 指定列元素的和
*/
public static double sumOfColum(double[][] arrayName,int colum){
double sum=0.0;
for(int i=0;i<arrayName.length;i++){
sum+=arrayName[i][colum];
}
return sum;
}
/**
* 计算行数与列数相同的数组的主对角线的和
* @param arrayName 指定数组
* @return sum 主对角线的和
*/
public static double sumOfMainDiagonal(double[][] arrayName){
double sum=0.0;
for(int i=0;i<arrayName.length;i++){
sum+=arrayName[i][i];
}
return sum;
}
/**
* 计算行数与列数相同的数组的副对角线的和
* @param arrayName 指定数组
* @return sum 副对角线的和
*/
public static double sumOfSubDiagonal(double[][] arrayName){
double sum=0.0;
for(int i=0;i<arrayName.length;i++){
sum+=arrayName[i][arrayName[i].length-i-1];
}
return sum;
}
/**
* 求指定数组的最大值
* @param arrayName 指定数组
* @return max 最大值
*/
public static double getMax(double[][] arrayName){
double max=0.0;
for(int i=0;i<arrayName.length;i++){
for(int j=0;j<arrayName[i].length;j++){
if(max<arrayName[i][j]){
max=arrayName[i][j];
}
}
}
return max;
}
/** 测试方法
* @param args
*/
public static void main(String[] args) {
double[][] array={{3.0,4.0,5.0,6.0},
{7.3,5.4,3.2,4.3},
{8.2,4.3,2.3,5.2},
{4.4,4.5,0.1,1.2}};
ArrayDemo.displayArray(array);
System.out.println("第二行的和为:"+ArrayDemo.sumOfRow(array, 2));
System.out.println("第二列的和为:"+ArrayDemo.sumOfColum(array, 2));
System.out.println("主对角线的和为:"+ArrayDemo.sumOfMainDiagonal(array));
System.out.println("副对角线的和为:"+ArrayDemo.sumOfSubDiagonal(array));
System.out.println("数组的最大值为:"+ArrayDemo.getMax(array));
}
}