虽然我已经看到有关同一主题的一些问题,但它们并不具体到我的情况。
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);
}
}
为什么这不是打印最低的数字?
答案 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)