在数组中查找最小值

use*_*913 0 java arrays

我正在学习Java,现在正在使用数组.我正在做一个练习,我要让用户输入一个2×3整数数组的值.然后我应该找到最小的值.我通过使用if语句来做到这一点.问题是编译器总是为最小值打印数字"0".我无法找到我的代码有什么问题.谁能帮帮我吗?代码如下:

  import java.util.Scanner;
  public class Oppgave79k 
  {
public static void main(String[] args) 
{
    Scanner input = new Scanner(System.in);
    int t[][] = new int[2][3];
    int smallest = t[0][0];

    for (int row = 0; row < t.length; row++)
        {
        for (int column = 0; column < t[row].length; column++)
            {
            System.out.println("Enter values for array: ");
            t[row][column] = input.nextInt();
            if (t[row][column] < smallest)
                {
                smallest = t[row][column];
                }
            }
        }
    for (int row = 0; row < t.length; row++)
        {
        for (int column = 0; column < t[row].length; column++)
            {
            System.out.printf("%d ", t[row][column]);
            }
        }
    System.out.printf("Smallest element is: %d\n", smallest);
}
Run Code Online (Sandbox Code Playgroud)

}

Jon*_*eet 8

在这些方面:

int t[][] = new int[2][3];
int smallest = t[0][0];
Run Code Online (Sandbox Code Playgroud)

你已经smallest 0 开始了.所以除非你输入一个负数,否则它永远不会改变.

你可以使用:

int t[][] = new int[2][3];
int smallest = Integer.MAX_VALUE;
Run Code Online (Sandbox Code Playgroud)

确保输入的第一个号码被使用.

另外,你的缩进风格有些不同寻常.或

for (...) {
    // Code
}
Run Code Online (Sandbox Code Playgroud)

要么

for (...)
{
    // Code
}
Run Code Online (Sandbox Code Playgroud)

看起来很好,但是

for (...)
    {
    // Code
    }
Run Code Online (Sandbox Code Playgroud)

很不寻常.