繁体   English   中英

for循环内的Java数组最小元素

[英]Java array minimum element within for-loop

好的,我已经很长时间了。 我在这里已经解决了堆栈溢出中的类似问题,但仍然无法使其正常工作。 我需要找到数组中的最大值和最小值。 试图找到最小值是问题所在。 我已经尝试过从编写单独的方法开始的所有操作,等等,仍然将输出设置为0。这是我尝试过的:

import java.util.Scanner;

class ArrayMin {

  public static void main(String args[]) {
    @SuppressWarnings("resource")
    Scanner scanner = new Scanner(System.in);

    int a[] = new int[10];
    int max = a[0];
    int min = a[0];

    System.out.println("Enter elements of array :");
    for (int i = 0; i < 10; i++) {
      a[i] = scanner.nextInt();
      if (i == 9)
        break;
    }

    for (int i = 1; i < a.length; i++) {

      if (a[i] > max)
        max = a[i];

      else if (a[i] < min)
        min = a[i];

    }

    System.out.println("Result is max is :" + (max)); //if I input 1-10, output is 10
    System.out.println("Result is min is :" + (min)); //whatever number I input the output is always 0
  }
}

声明数组时,它会初始化为全零。 然后,将min分配给第一个元素,即零。 假定所有值在分配后都> =到0,因此min仍为零,但max正确。

for循环建立maxmin 在其中将输入值分配给数组。

for (int i = 0; i < 10; i++) {
  a[i] = scanner.nextInt();
  if (i == 9)
    break;
}
// Moved HERE.
int max = a[0];
int min = a[0];

更换它。

   int max = Integer.MIN_VALUE;
   int min = Integer.MAX_VALUE;
...
    for (int i = 0; i < a.length; i++) {

      if (a[i] > max)
        max = a[i];

      if (a[i] < min)
        min = a[i];

    }
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM