-3

これが私のプログラムです。26% 6 の結果は 2 になるはずです。しかし、私のプログラムは 20、14、8、2 を返します。どうすれば修正できますか? 初心者なのでわかる方教えてください!

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

        int A, B;

        System.out.println("Enter first number:");
        A = scan.nextInt();
        System.out.println("Enter second number:");
        B = scan.nextInt();

        int C = A;

        while (C >= B) {
            C = C - B;
            System.out.println("The remainder is: " + C);
        }
    }
}
4

5 に答える 5

2

ループのSystem.out.println外側にwhile置きます..そうでなければ、CからBの値を引くたびに出力されます

       while (C>= B)
       {
           C= C-B;
           System.out.println("The remainder is: " + C ) ;  // printing each time
       }

       while (C>= B)
       {
           C= C-B; 
       }
       System.out.println("The remainder is: " + C ) ;
于 2013-11-08T14:44:27.900 に答える
1

ループの本体の内側に印刷します。ループが完了したら、一度だけ印刷する必要があると思います。

于 2013-11-08T14:44:33.677 に答える
1

%演算子を直接使用できることを知っていると思いますか? 例: System.out.println("The remainder is: " + (A % B));.

ループのエラーは、print ステートメントがループ内にあることです。終了後でなければならず、減算が終了したら印刷します。

PS 負数またはゼロの数値に特別な処理を追加することを検討してください。そうしないと、その場合、プログラムが長時間ループする可能性があります...

于 2013-11-08T14:45:43.857 に答える
0

私はこれをしたいと思います(変数を削除し、 Java命名規則Cを使用して変数の名前を変更し、インスタンスを閉じます):scan

import java.util.Scanner;

public class Modulus {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int operand1, operand2;
        System.out.println("Enter first number:");
        operand1 = scan.nextInt();
        System.out.println("Enter second number:");
        operand2 = scan.nextInt();
        while (operand1 >= operand2) {
            operand1 = operand1 - operand2;
        }
        System.out.println("The remainder is: " + operand1);
        scan.close();
    }
}
于 2013-11-08T15:00:43.917 に答える
0

このように入れます

           while (C>= B)
       {
           C= C-B;


       }
   System.out.println("The remainder is: " +  (A % B) ) ;

}
于 2013-11-08T14:47:16.797 に答える