【问题标题】:Printing Index number of array打印数组的索引号
【发布时间】:2018-07-30 16:13:11
【问题描述】:

我正在尝试打印一个可以找到最大数字的输出,同时也打印数组的索引号。我可以打印最大数量,但无法打印索引号。

public static int findMax(int[] allNumbers) {
    int maxValue = allNumbers[0];
    for (int i = 1; i < allNumbers.length; i++) {
        if (allNumbers[i] > maxValue) {
            maxValue = allNumbers[i];
        }
    }
    return (int) maxValue;
}

我的数组:

int[] allNumbers = new int[inpNum];

我可以通过以下方式调用最大号码 findMax(number)

【问题讨论】:

  • 您不需要在 return 语句中将 maxValue 转换为 int。不要害怕,它总是一个 int ;-)

标签: java arrays indexing output element


【解决方案1】:

你可以返回一个最大值和索引的数组:

public static int[] findMax(int[] allNumbers) {
        int maxValue = allNumbers[0];
        int index = 0;
        for (int i = 1; i < allNumbers.length; i++) {
            if (allNumbers[i] > maxValue) {
                maxValue = allNumbers[i];
                index = i;
            }
        }
        return new int[] {maxValue , index};
}

【讨论】:

  • 当我尝试此代码时,我在打印输出时收到 I@55f96302
  • @SPJava 使用Arrays.toString 方法。 System.out.println(Arrays.toString(findMax(yourArray)));
  • 谢谢!现在有效,我唯一的问题是,如果我想添加措辞而不是输出显示:100, 1 我希望它在位置 1 上为 100。无论如何要这样做?
  • @SPJava 存储对返回数组的引用,然后对数组进行索引以获取相应的元素,提供您的措辞... --> int[] result = findMax(yourArray); System.out.println(result[0] + " on position " + result[1]);
  • 问题如果两个数字相同会发生什么我如何打印索引号两次?示例输入数字 100、100、10 应在位置 1 和 2 上打印 100
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
相关资源
最近更新 更多