-3

问题是:

  1. 在数组中找到更大的数字
  2. 返回包含更大值而不是索引值的索引号。

代码

public class temp02 {

 public static void consoledisplay(int [] array){
  for (int a = 0; a < array.length; a++)
   System.out.println("Value of array index "+a+" is "+array[a]);
  System.out.println("");
 }

 public static int [] higherNumbers(int[] array, int numbers){
  // needed codes here
  return array;
 }

 public static void main (String[] args) {
  int [] x = new int[10];
  x[0] = 55;
  x[1] = 27;
  x[2] = 23;
  x[3] = 22;
  x[4] = 55;
  x[5] = 56;
  x[6] = 33;
  x[7] = 21;
  x[8] = 21;
  x[9] = 99;

  consoledisplay(x);

  x = higherNumbers(x,4);
  consoledisplay(x);
 }
}

电流输出

数组索引 0 的值是 55
数组索引 1 的值是 27
数组索引 2 的值是 23
数组索引 3 的值是 22
数组索引 4 的值是 55
数组索引 5 的值是 56
数组索引 6 的值是 33
值数组索引 7 的
值是 21 数组索引 8 的
值是 21 数组索引 9 的值是 99

数组索引 0 的值是 55
数组索引 1 的值是 27
数组索引 2 的值是 23
数组索引 3 的值是 22
数组索引 4 的值是 55
数组索引 5 的值是 56
数组索引 6 的值是 33
值数组索引 7 的
值是 21 数组索引 8 的
值是 21 数组索引 9 的值是 99

目标输出

数组索引 0 的值是 55
数组索引 1 的值是 27
数组索引 2 的值是 23
数组索引 3 的值是 22
数组索引 4 的值是 55
数组索引 5 的值是 56
数组索引 6 的值是 33
值数组索引 7 的
值是 21 数组索引 8 的
值是 21 数组索引 9 的值是 99

数组索引 0 的值是 9
数组索引 1 的
值是 5 数组索引 2 的值是 0
数组索引 3 的值是 4

4

3 回答 3

0
int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > arr[max])
                max = i;
        }
        return max;
于 2013-10-19T19:06:51.373 回答
0

使用以下代码,它会工作

public static int[] higherNumbers(int[] array, int numbers) {
    int tempArr[] = Arrays.copyOf(array, array.length);
    Arrays.sort(tempArr);
    int retArr[] = new int[numbers];
    int j = 0;
    for (int i = array.length - numbers; i < array.length; i++) {
        for (int x = 0; x < array.length; x++) {
            if (array[x] == tempArr[i]) {
                if(checkIndex(retArr,x)){
                continue;
                }else{
                    retArr[j] = x;
                break;
                }
            }
        }
        j++;
    }
    return retArr;
}

private static boolean checkIndex(int[] indexArr, int index){
    boolean status = false;
    for(int i=0; i<indexArr.length; i++){
        if(index == indexArr[i]){
            status = true;
            break;
        }
    }
    return status;
} 
于 2013-10-20T19:47:18.780 回答
0

尝试这个

public static int[] higherNumbers(int[] array, int numbers) {
    int tempArr[] = Arrays.copyOf(array, array.length);
    Arrays.sort(tempArr);
    int retArr[] = new int[numbers];
    int j = 0;
    for (int i = array.length - numbers; i < array.length; i++) {
        for (int x = 0; x < array.length; x++) {
            if (array[x] == tempArr[i]) {
                retArr[j] = x;
                break;
            }
        }
        j++;
    }
    return retArr;
}
于 2013-10-19T20:17:44.727 回答