-2

最初の 10 個の奇数を加算し、最後に合計を取得するプログラムを作成しています。

これまでの私のコードは次のとおりです。私のコードは、10 個の数字のリストで奇数を読み取ります。10 個以上の数字が入力された場合でも、コードで 10 個の奇数を読み取れるようにしたいと考えています。問題はi < 10、10 番目の数字の後でプログラムが停止することです。

import java.util.Scanner;

公開クラスの質問14 {

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

    int odd,sum=0;
    System.out.println("enter numbers");

    int i = 0;
            while(i < 10) {
                odd = keyboard.nextInt();
                if (odd % 2 != 0) {
                    sum = sum + odd;
                    i++;
                }
            }
            System.out.println("The sum of first 10 odd numbers is " + sum);

}

}

4

4 に答える 4

2

代わりに、while ループでラップします。

奇数 < 10 は新しい番号を要求します。

int i = 0
while(i < 10) {
    odd = keyboard.nextInt();
    if (odd % 2 != 0) {
        sum = sum + odd;
        i++;
    }
}
System.out.println("The sum of first 10 odd numbers is " + sum);

編集:完全なコード

java.util.Scanner をインポートします。

/* * このテンプレートを変更するには、[ツール] | [ツール] を選択します。テンプレート * エディターでテンプレートを開きます。*/

/** * * @author stevengreen22 */ public class NewMain {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here 
    Scanner scan = new Scanner(System.in);

    int i = 0; 
    int sum = 0;
    int input;
    int inputCount = 0;

    while (i < 10){
        //Having this inside the while loop prompts the user every time.  
        System.out.println("New number?");
        input = scan.nextInt();
        inputCount++;

        if(input % 2 == 1){
            sum += input;
            i++;
        }
    }

    System.out.println("sum: "+sum);
    System.out.println("Number of odds:" + i);
    System.out.println("Numbe of inputs: " +inputCount);
    System.out.println("Average cos I miss typing sout tab:" + (inputCount/sum));
}

}

于 2013-07-22T00:24:42.597 に答える
1

原則として、ユーザーがプログラムに入力する数字の数がわからないため、whileループの代わりにループを使用する必要がありforます。

for反復したい要素の数がわかっている場合は、ループを選択します。while反復する必要がある要素の数がわからない場合は、ループを選択します。

ループの外側で呼び出される別の変数を定義しcounter、これをループ変数の制約として使用する必要があります。

while(counter < 10) {
    // loop
}

counterまた、奇数の値に遭遇したときはいつでも更新する必要があります。

于 2013-07-22T00:31:25.160 に答える
0

for ループを while ループに置き換えて、整数の奇数の数を追跡するだけです。

int oddNumberCount = 0;
int inputNumber;
while(oddNumberCount<10)
{
inputNumber = keyboard.nextInt();
if(inputNumber%2!=0)
{
      sum = sum+inputNumber;
      oddNumberCount++;
}
}
于 2013-07-22T00:31:32.310 に答える
0

これはうまくいくはずです

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

    int odd,sum=0;
    System.out.println("enter numbers");

    int i=0;
    while (i<10){
        odd=keyboard.nextInt();
        if (odd%2!=0){
            sum=sum+odd;
            i++;
        }  
    }
    System.out.println("The sum of first 10 odd numbers is "+sum);
}
于 2013-07-22T00:30:39.170 に答える