2013-02-04 33 views
-2

虽然我看到有关同一主题的一些问题,但它们并不足以满足我的情况。打印数组中的最小数字(Java)

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); 
} 

} 

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

+1

边评论:你可以使用的'而不是一个'清单'INT []'并调用'int min = Collections.min(list);'。 – assylias

回答

4

在你的if中的测试总是测试数组中的第一个元素。您可能需要根据发现该点的最低数字对其进行测试:

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

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

2

你比较if (tabell[i] < tabell[0])错了,它应该是:

if (tabell[i] < minstetall) 

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

2

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

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

应该

if (tabell[i] < minstetall)