我正在学习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)
}
在这些方面:
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)
很不寻常.
归档时间: |
|
查看次数: |
1758 次 |
最近记录: |