Java 在数组中寻找最小值
我正在学习Java,现在正在使用数组。我正在做一个练习,让用户输入2×3整数数组的值。然后我应该找到最小的值。我通过使用if语句来实现这一点。问题是编译器总是打印最小值的数字“0”。我无法找出我的代码有什么问题。有人能帮我吗? 代码如下:Java 在数组中寻找最小值,java,arrays,Java,Arrays,我正在学习Java,现在正在使用数组。我正在做一个练习,让用户输入2×3整数数组的值。然后我应该找到最小的值。我通过使用if语句来实现这一点。问题是编译器总是打印最小值的数字“0”。我无法找出我的代码有什么问题。有人能帮我吗? 代码如下: import java.util.Scanner; public class Oppgave79k { public static void main(String[] args) { Scanner input = new Scann
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);
}
import java.util.Scanner;
公开课机会79K
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
int t[][]=新int[2][3];
int=t[0][0];
for(int row=0;row
}在这些行中:
int t[][] = new int[2][3];
int smallest = t[0][0];
您已开始将最小的设置为0。所以除非你输入一个负数,否则它永远不会改变
您可以使用:
int t[][] = new int[2][3];
int smallest = Integer.MAX_VALUE;
以确保使用输入的第一个数字
另外,您的缩进样式有些非传统。或者
for (...) {
// Code
}
或
我觉得不错,但是
for (...)
{
// Code
}
非常不寻常。最小值的初始值为0。如果通过输入在中输入负数,则应获得不同于0的值
如果您正在学习Java或任何其他编程语言,请考虑将最小值设置为第一个输入值。
了解如何调试代码,这将帮助您了解计算机如何“思考”
如果你刚开始,试着不写任何一行代码就解决问题,这将帮助你像“计算机”一样思考
然后你会发现你最初分配的最小的是错误的。我建议你先做输入读取部分并存储2D数组。然后你可以设置最小的=t[0][0]。然后它永远不会崩溃。我还建议你实现一个排序算法,而不是找到一个最小的元素。我可以保证这将是一次很棒的经历。
还可以使用EclipseIDE,这是一个开源IDE。在那里,您可以调试您的观点,这将简化您的编码生活 为什么不使用并获取排序数组中的第一个元素?@mre:这是O(nlogn)而不是O(n)。它还会修改数组,除非您进行了复制。
for (...)
{
// Code
}