打印数组中的最小数字(Java)

时间:2013-02-04 10:04:34

标签: java arrays

虽然我已经看到有关同一主题的一些问题,但它们并不具体到我的情况。

import java.util.*;
public class Kap3Oppg5 {
public static void main(String[] args) {
    int x = 0;
    int tabell[] = new int[10];
    int heltall;
    Scanner in = new Scanner(System.in);
    int minstetall = tabell[0];

    while (x < 10) {
        System.out.println("Tast inn neste tall:");
        heltall = in.nextInt();
        tabell[x] = heltall;
        x = x + 1;
    }

    for (int i=0;i<tabell.length;i++) {
        if (tabell[i] < tabell[0])
            minstetall = tabell[i];

    }
    System.out.print(minstetall);
}

}

为什么这不是打印最低的数字?

4 个答案:

答案 0 :(得分:4)

if中的测试总是针对数组中的第一个元素进行测试。您可能希望针对到目前为止找到的最低数字进行测试:

if (tabell[i] < minstetall) { ...

答案 1 :(得分:2)

因为每次你都要与数组的第一个元素进行比较。

答案 2 :(得分:2)

您的比较if (tabell[i] < tabell[0])错误应该是:

if (tabell[i] < minstetall)

您正在与第一个元素进行比较。 目前,如果您的数组的第一个元素偶然包含最低值,那么您将获得正确的结果,否则当前代码将失败。

答案 3 :(得分:2)

这是因为在这一行中你正在比较错误的东西:

if (tabell[i] < tabell[0])

应该是

if (tabell[i] < minstetall)