0

特定の要件が必要
な4 つの数字を入力できるプログラムを作成しました。

プログラムは 4 つの数値を取得し、それらの合計と平均を示し、4 つの数値の最小値と最大値を示します。

次に、各番号が属するグループを表示してみます。あなたが疑問に思っている場合は、これらのグループが必要です:
数が 0 から 99 の間の場合、グループ
10 数が 100 から 999 の間の
場合、グループ 100 数が 1000 から 999,999 の間の場合、グループ 1000 数が
999,999 より大きい場合、グループ その他

私の問題は、それらをプログラムのどこに配置すべきかわからないことです(以下)

import java.util.Scanner;

public class FourNumbersProgram {

private static int readNumber(String message, Scanner in) {
    System.out.println("Enter a numbers divislbe by 4 or 6. No negatives.");
    System.out.println("**If greater than 500: must be multiple of 10");
    System.out.print(message);
    while (!in.hasNextInt()) {
        in.next();
        System.out.println("Sorry, couldn't understand you!");
        System.out.print(message);
    }
    int a = in.nextInt();
    return a;
}

private static int readNumberToMatchCondition(String message, Scanner in) {
    int number = 0;
    do {
        number = readNumber(message, in);
        if (number < 500) {
            if (number % 4 != 0 && number % 6 != 0) {
                System.out.println(number + " not divisible by 4 or 6");
            } else {
                return number;
            }
        } else {
            if (number % 4 != 0 && number % 6 != 0) {
                System.out.println(number + " not divisible by 4 or 6");
            } else if (number % 10 != 0) {
                System.out.println(number + " is greater than 500 and not divisible by 10");
            } else {
                return number;
            }

        }
    } while (true);
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int randomNumber1 = readNumberToMatchCondition("Enter first number:", in);
    int randomNumber2 = readNumberToMatchCondition("Enter second number:", in);
    int randomNumber3 = readNumberToMatchCondition("Enter third number:", in);
    int randomNumber4 = readNumberToMatchCondition("Enter fourth number:", in);


    int sum; // sum of number1, number2, number3, and number4
    int avg; // average of number1, number2, number3, and number4
    int largest; // largest number of the four integers
    int smallest; // smallest number of the four integers

    sum = (randomNumber1 + randomNumber2 + randomNumber3 + randomNumber4);

    avg = ((sum) / 4);

      smallest = randomNumber1;
        smallest = (randomNumber2 < smallest) ? randomNumber2 : smallest;
        smallest = (randomNumber3 < smallest) ? randomNumber3 : smallest;
        smallest = (randomNumber4 < smallest) ? randomNumber3 : smallest;


      largest = randomNumber1;
        largest = (randomNumber2 > largest) ? randomNumber2 :largest;
        largest = (randomNumber3 > largest) ? randomNumber3 :largest;
        largest = (randomNumber4 > largest) ? randomNumber4 :largest;

    System.out.println();
    System.out.println("First number entered: " + randomNumber1); //prints first number entered
    System.out.println("Second number entered: " + randomNumber2); //prints second number entered
    System.out.println("Third number entered: " + randomNumber3); //prints third number entered
    System.out.println("Fourth number entered: " + randomNumber4); //prints fourth number entered
    System.out.println();
    System.out.println("The sum is: " + sum); //prints sum of four numbers
    System.out.println("The average is: " + avg); //prints average of four numbers
    System.out.println("The smallest number is:  " + smallest); //prints smallest of the four numbers
    System.out.println("The largest number is:  " + largest); //prints largest of the four numbers
    System.out.println();
}
}



これが私のコードのトランスクリプトです:
ここに画像の説明を入力


私の教授は、このグループ化プログラムのサンプルをくれました (以下)。


import java.util.Scanner;

public class Prog2 {

  public static void main(String[] args){

       Scanner in = new Scanner(System.in);// read a number

       System.out.println("Enter a number: ");
       int number = in.nextInt();

       if (number < 0) {
            System.out.println("Error: Sorry, no negative numbers allowed.");

            System.exit(0);
       }


       int grp1 = (number / 100) + 1;
       int grp2 = (number / 1000) + 1;
       int grp3 = (number / 1000000) + 1;

       switch (grp1){
       case 1: // Group Tens
            System.out.println(number + " belongs to Group Tens");

            break;
       default:
            switch (grp2) {
            case 1:// Group Hundreds
                 System.out.println(number + " belongs to Group Hundreds");

                 break;
            default:
                 switch (grp3) {
                 case 1:// Group Thousands
                      System.out.println(number + " belongs to Group Thousands");

                      break;
                 default:// Group Others
                      System.out.println(number + " belongs to Group Others");
}

}

}

in.close();
}

}



彼のコードのトランスクリプトを次に示します。彼のプログラムがユーザーに1 つの数字を入力するように要求し、プログラムがそれをグループ化すること
ここに画像の説明を入力


は知っています。このようなものを自分のプログラムに入れる方法を考えていました。グループ化する必要がある 4 つの数値があり、4 つの数値 (randomNumber1、randomNumber2、randomNumber3、randomNumber4) のすべてについて教授プログラムと同様のことを繰り返す必要があるかどうかわからないため、混乱しています 。 code! 自分で直して学びたい!

4

2 に答える 2