Java实验(8) Location类

本文介绍如何定义一个Location类来寻找二维数组中的最大值及其坐标。Location类包含row和col表示位置,maxValue表示最大值。提供了一个静态方法locateLargest用于求解,并通过测试类验证其正确性。当最大值不唯一时,记录第一个出现的位置。

定义一个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);
    }
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值