当前位置: 代码迷 >> Java相关 >> 有关2为数列的有关问题,求帮助
  详细解决方案

有关2为数列的有关问题,求帮助

热度:3307   发布时间:2013-02-25 21:46:23.0
有关2为数列的问题,求帮助
要求用一个类确定二位数列中最大值和最大值的位置。这个类包含public data field row,column,and maxValue去储存最大值和它的index,这个数列的row和column是整数类型,maxValue是double类型。使用public static Location locationLargest(double [][] a)作为类函数获得二维函数中最大值的位置。获得的值是一个instance of location. 用一个test 程序让用户输入一个二位数列,别且显示数列中最大值的位置。
以下是sample:
Enter the number of rows and columns of the array: 3 4
enter the array
35 2 10 4.3
23.5 4.5 3 45
33 44 5.5 9.6
The location of the largest element is 45 at (2,4)


哪位大神能帮忙做一下么,谢谢了。

------解决方案--------------------------------------------------------
Java code
import java.util.Scanner;public class Test {      static class Location{        int row,col;        double max;                public Location(int row,int col,double max){            this.row = row;            this.col = col;            this.max = max;        }        public int getRow() {            return row;        }        public int getCol() {            return col;        }        public double getMax() {            return max;        }    }        public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        double[][] arr = null;        try {            System.out.println("Enter the number of rows and columns of the array:");            String input = scanner.next();            int row = Integer.valueOf(input);            input = scanner.next();            int col = Integer.valueOf(input);            arr = new double[row][col];            System.out.println("enter the array");            for(int i = 0;i < row;i++){                for(int j = 0;j < col;j++){                    input = scanner.next();                    arr[i][j] = Double.valueOf(input);                }            }        } catch (Exception e) {            System.out.println("input error");        }        Location location = locationLargest(arr);        System.out.println("The location of the largest element is " +                 location.getMax() + " at (" + (location.getRow() + 1) + "," +                 (location.getCol() + 1) + ")");    }        static Location locationLargest(double[][] a){        Location location = new Location(0,0,a[0][0]);        for(int i = 0;i < a.length;i++){            for(int j = 0;j < a[0].length;j++){                if(a[i][j] > location.getMax()){                    location = new Location(i,j,a[i][j]);                }            }        }        return location;    }}
------解决方案--------------------------------------------------------
Java code
import java.util.Scanner;public class TestSync {    public static void main(String args[]) {        Scanner s = new Scanner(System.in);        int countX = 0, countY = 0;        double[][] data = null;        for (;;) {            System.out                    .print("Enter the number of rows and columns of the array:");            String str = s.nextLine();            try {                String[] temp = str.split("\\s+");                data = new double[Integer.valueOf(temp[0])][Integer                        .valueOf(temp[1])];            } catch (Exception e) {                continue;            }            break;        }        countX = data.length;        countY = data[0].length;        double max = Double.MIN_NORMAL;        int maxIndexX = -1;        int maxIndexY = -1;        boolean exitFlag = false;        while (!exitFlag) {            System.out.println("Enter the array:");            exitFlag = true;            for (int index = 0; index < countX * countY; index++) {                try {                    data[index / countY][index % countY] = s.nextDouble();                    if (max < data[index / countY][index % countY]) {                        maxIndexX = index / countY;                        maxIndexY = index % countY;                        max = data[index / countY][index % countY];                    }                } catch (Exception e) {                    exitFlag = false;                    break;                }            }        }        System.out.println("The location of the largest element is " + max                + " at ( " + maxIndexX + "," + maxIndexY + ")");    }}
  相关解决方案