-2

同じトピックに関するいくつかの質問を見てきましたが、それらは私の状況に十分に具体的ではありません。

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

4 に答える 4

4

if のテストは、常に配列の最初の要素に対してテストします。その時点までに見つかった最小数に対してテストすることをお勧めします。

if (tabell[i] < minstetall) { ...
于 2013-02-04T10:06:29.483 に答える
2

配列の最初の要素と比較するたびに。

于 2013-02-04T10:06:39.243 に答える
2

あなたの比較if (tabell[i] < tabell[0])は間違っています:

if (tabell[i] < minstetall)

最初の要素と比較しています。現在、配列の最初の要素に偶然に最小値が含まれている場合、正しい結果が得られます。そうでない場合、現在のコードは失敗します。

于 2013-02-04T10:07:01.620 に答える
2

これは、この行で間違ったものを比較しているためです。

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

する必要があります

if (tabell[i] < minstetall)
于 2013-02-04T10:07:05.163 に答える