2013-02-04 1 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의 테스트는 항상 배열의 첫 번째 요소에 대해 테스트합니다. 해당 지점까지 발견 된 가장 낮은 수에 대해 테스트 할 수 있습니다.

2

때마다 배열의 첫 번째 요소와 비교하기 때문에 테스트 할 수 있습니다.

2

귀하의 비교 if (tabell[i] < tabell[0])는해야 잘못 : 당신은 첫 번째 요소에 대해 비교하는

if (tabell[i] < minstetall) 

. 현재 배열의 첫 번째 요소에 우연히 가장 낮은 값이 포함 된 경우 올바른 결과 인을 얻습니다. 그렇지 않으면 현재 코드가 실패합니다.

2

이 줄 잘못된 것은 비교하는 때문입니다 :

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

if (tabell[i] < minstetall)