0

5 つの数字の最大値と最小値を示すプログラムを作成する必要がありましたが、出力で最小値 = 0 と最大値 = 0 を取得し続けます。私はまだコメントなどを追加していませんが、他に試してみましたが、まったく機能していません(他に機能したことに驚いています)。誰かがこれで私を助けてくれませんか。私はこれについて助けを必要としないはずですが、私はこれを理解することができません.

public class int_big_small {
    public static void main(String args[]){

        int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
        int largest = 0, smallest = 0;

            if(num1 > num2){
                num1 = largest;
                num2 =  smallest;
            }else{
                num2 = largest;
                num1 = smallest;
            }

            if(num3>largest){
                num3 = largest;
            }
            if(num3<smallest)
                num3 = smallest;
            if(num4>largest){
                num4 = largest;
            }
            if(num4<smallest)
                num4 = smallest;

            if(num5>largest){
                    num5 = largest;
                }
                if(num5<smallest)
                    num5 = smallest;



            System.out.println("the smallest number is " + smallest + " and the largest is " + largest);
    }
}
4

3 に答える 3

2

あなたの割り当てはすべて逆順になっています -smallest = whateverではなく、whatever = smallest

これも for ループに入れるように叫んでいます。

int[] nums = new int[] {num1, num2, num3, num4, num5};
int smallest = nums[0];
int largest = nums[0];
for(int i = 1; i < nums.length; i++) {
    if(nums[i] < smallest) {
        smallest = nums[i];
    }
    if(nums[i] > largest) {
        largest = nums[i];
    }
}

数値のリストから有効な int に初期化します。それらを初期化するとsmallest、終了時に等しくなります。(問題を引き起こさない唯一のデフォルト値は)largest0smallest0smallest = Integer.MAX_VALUE; largest = Integer.MIN_VALUE;

于 2013-04-12T16:23:12.767 に答える
1
public int min(int a, int b) {
    if(a > b) return b;
    return a;
}

public int max(int a, int b) {
    if(a > b) return a;
    return b;
}

int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
int largest = num1, smallest = num1;

smallest = min(min( min(num1, num2) , min(num3, num4)), num5);
largest  = max(max( max(num1, num2) , max(num3, num4)), num5);
于 2013-04-12T16:28:00.270 に答える
1

Java を学習している場合は、配列とループを含むソリューションを使用してください。Javaを使用している場合は、次の 3 行で実行できます。

List<Integer> list = Arrays.asList(num1, num2, num3, num4, num5);
int smallest = Collections.min(list);
int largest  = Collections.max(list);
于 2013-04-12T16:46:53.870 に答える