在数组中找到最高值

时间:2013-09-26 03:22:34

标签: java arrays variables if-statement printing

这是我的数组代码:

int h = 0;
int i = 1;
while (h < a.length - 1){
    if (a[h] < a[i]){
        h++;
        i++;
    }
    if (a[h] > a[i]){
        a[i] = a[h];
        a[h] = a[i + 1];
    }
}
if (h == a.length - 1){
System.out.println(a[i]);
}

我不知道我做错了什么。我需要学校作业的答案。我在学校的计算机科学课上。

4 个答案:

答案 0 :(得分:0)

检查一下,我不确定您使用的是哪种语言,但我会选择使用for循环代替while

int h = 0;
int i = 0;
int v = null;
while (h < a.length - 1){
    if(v == null || v < a[i])
    {
        v = a[i];
        h = i;
    }
    i++;
}
if (v != null){
   System.out.println(v); //for value
   System.out.println(h); //highest index
   System.out.println(a[h]); //for value from array a
}

答案 1 :(得分:0)

尝试创建此方法

  public int max(int[] a) {
        int temp = a[0];

        for (int i = 1; i < a.length; i++) {
            if (a[i] > temp) {
                temp = a[i];
            }
        }
        return temp;
    }

并在您的主要方法中

int[] a = new int[3];
        a[0]=2;
        a[1]=3;
        a[2]=54;
System.out.println("Highest value is "+ max(a));

答案 2 :(得分:0)

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

答案 3 :(得分:0)

Arrays.sort(a);
System.out.println(a[a.length - 1]);