数组中最大数的位置 [英] Location of Largest Number in an Array

查看:39
本文介绍了数组中最大数的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的程序应该提示用户输入数组中的行数和列数,然后输入数组.然后计算并显示数组中最大元素的位置.

My program is supposed to prompt the user to input the number of rows and columns in an array and then input the array. The location of the largest element in the array is then calculated and displays.

我的代码一直显示 (0,1) 而不是实际结果 (1,2).有什么想法吗?

My code keeps displaying (0,1) instead of the actual result, (1,2). Any ideas?

我的代码:

import java.util.Scanner;

public class Question8_13 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter the number of rows and columns in the array: ");
        int row = input.nextInt();
        int col = input.nextInt();
        System.out.println("Enter numbers into array: ");
        double[][] a = new double[row][col];
        for (double[] a1 : a) {
            for (int j = 0; j < a1.length; j++) {
                a1[j] = input.nextDouble();
            }
        }
        int[] largest = locateLargest(a);
        System.out.println("The location of the largest element is at: (" +  largest[0] + "," + largest[1] + ")");
        for (int i = 0; i < 2; i++) {
            System.out.print(largest[i]);
        }
    }

    public static int[] locateLargest(double[][] a) {
        double max = 0;
        int maxRow = 0;
        int maxColumn = 0;
        int row = 0;
        for (int column = 0; column < a[row].length; column++) {
            if (a[row][column] > max) {
                max = a[row][column];
                maxRow = row;
                maxColumn = column;
            }
        }
        int[] largest = new int[2];
        largest[0] = maxRow;
        largest[1] = maxColumn;
        return largest;
    }
}

<小时>

结果:

Enter the number of rows and columns in the array: 3 4

Enter numbers into array: 

23.5 35 2 10

4.5 3 45 3.5

35 44 5.5 9.6

The location of the largest element is at: (0,1)

<小时>

编辑

我有:

for (int row = 0; row

for (int row = 0; row < a[0].length; row++){

在第 32 行,但这个错误不断出现:

at line 32, but this error kept coming up:

线程main"中的异常 java.lang.ArrayIndexOutOfBoundsException: 3

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

at Question8_13.locateLargest(Question8_13.java:33)

at Question8_13.main(Question8_13.java:21)

Java 结果:1"

让程序实际运行并且不会出现该错误的唯一方法是仅检查 row = 0

The only way I can get the program to actually run and that error to not come up is by only checking for row = 0

推荐答案

在你的循环中:

for (int row = 0; row < a[0].length; row++)

行数是a.length,不是a[0].length.a[0].length 是第一行的列数.

The number of rows is a.length, not a[0].length. a[0].length is the number of columns in the first row.

这篇关于数组中最大数的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆