您的位置:首页 > 编程语言 > Java开发

Java实验(8) Location类

2016-06-24 15:03 489 查看
定义一个Location类,用于搜索二维数组的最大元素出现的位置和值。位置用公有的整型成员变量row, col表示,最大值用公有的浮点型成员变量maxValue表示。一个成员方法用来求解二维数组的最大元素及其位置,原型如下:

public static Location locateLargest(double[][] a)
例如数组为{{1,2,3},{8,9,9,5},{4,3,5,7,8}},最大元素为9,位置是(1,1)。注意最大值不止一个的时候,只记录第一次出现的位置。
请提供一个测试类,测试上述方法。



import java.util.Scanner;
class Location
{
public int row,col;
public double maxValue;
//构造函数
Location(){}
Location(int r,int c,double mv){
row=r;
col=c;
maxValue=mv;
}
//找最大的位置
public static Location locateLargest(double [][]a){
double maxValue=a[0][0];
int row=0,col=0;
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
if(a[i][j]>maxValue){
row=i;
col=j;
maxValue=a[i][j];
}
}
}
Location lo=new Location(row,col,maxValue);
return lo;
}
}
public class LocationMax {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Location l=new Location();
System.out.println("请输入数组的行数:");
int r=input.nextInt();
double [][]a=new double[r][];
//因为数组可能不规则,所以对每行都要确定一个列数
for(int i=0;i<r;i++){
System.out.println("请输入数组第"+i+"行的列数:");
int c=input.nextInt();
a[i]=new double[c];
}
System.out.println("请输入数组");
for(int i=0;i<r;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=input.nextDouble();
}
}
l=l.locateLargest(a);
System.out.println("行:"+l.row);
System.out.println("列:"+l.col);
System.out.println("最大值:"+l.maxValue);
}
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java