你如何找到一个数字的索引?

时间:2014-09-26 01:16:34

标签: java

    int [] x = new int[10];




    for(int i = 0; i<x.length;i++){
        x[i] = kb.nextInt();
    }

    int max = x[0];
    for(int i = 1;i<x.length;i++){
        if(x[i]>max){
            max = x[i];
        }

    }

    int min = x[0];
    for(int i = 1;i<x.length;i++){
        if(x[i]<min){
            min = x[i];
        }
    }

    x [max] = x [min];
    x [min] = x [max];

我想将最大值的索引更改为最小值的索引,但我需要实际索引而不是最大值,我该怎么做?

2 个答案:

答案 0 :(得分:1)

您需要保留另一个变量,例如maxIndex,以保存包含最大值的索引。然后,每次更新max(或min)时,都会使用用于检索该最大值的索引更新maxIndex(或minIndex)变量。

这就是你如何做到最大:

int [] x = new int[10];

for(int i = 0; i < x.length; i++){
    x[i] = kb.nextInt();
}

int max = x[0];
int maxIndex = 0;
for(int i = 1; i < x.length; i++){
    if(x[i] > max){
        max = x[i];
        // This is where you update the index
        maxIndex = i
    }
}

您可以应用相同的原则来保存最小变量的值

答案 1 :(得分:0)

以下应用程序将更改数组的minValue和maxValue索引

公共类示例{

public static void main(String[] args) {

    Scanner kb = new Scanner(System.in);

    int[] arr = new int[10];

    for (int i = 0; i < arr.length; i++) {
        arr[i] = kb.nextInt();
    }

    int maxIndex = 0;
    int minIndex = 0;

    for (int i = 0; i < arr.length; i++) {
        if (arr[maxIndex] < arr[i]) maxIndex = i;
        else if (arr[minIndex] > arr[i]) minIndex = i;
    }

    int temp = arr[maxIndex];
    arr[maxIndex] = arr[minIndex];
    arr[minIndex] = temp;

    for (int x : arr) System.out.print(x + "");
}

}