我必须找到数组中最小的数字。当我手动创建一个数组时,它可以工作,但是当我使用扫描仪从用户那里获取数字并将其放入负数时,它不会考虑负号,并且就像数字是正数一样。 scan.nextInt对负数是否有导致此的事情?

System.out.println("Enter an array size.");
size = scan.nextInt();

int[] numbers = new int[size];

System.out.println("Enter each integer in the array and press Enter after each one.");

for(int i = 0; i < size; i++)
{
    numbers[i] = scan.nextInt();
}

for(int j = 0; j < size; j++)
{
    smallest = numbers[0];
    if (numbers[j] < smallest)
    {
        smallest = numbers[j];
    }
}

System.out.println("Smallest Number is " + smallest);


这是参考代码

最佳答案

您可以在每个循环中重置smallest变量。

尝试在循环之前对其进行初始化。

    smallest = numbers[0];
    for(int j = 0; j < size; j++)
    {
      if (numbers[j] < smallest)
      {
        smallest = numbers[j];
      }
    }

09-26 22:10