0

これは、私が問題を抱えているプログラミングの課題です。授業で教わらなかったものは使えません。私のコードは冗長である可能性があると思います (カウント制御ループが多すぎると思います)。

質問は次のとおりです。

1 から 10 までの 1,000 個のランダムな整数で配列を埋めるアプリケーションを作成します。次に、プログラムで頻度カウントを実行する必要があります。10 個の可能な値すべてについて、1 に等しい要素の数、2 に等しい要素の数などです。プログラムは、値の平均も計算する必要があります。アプリケーションは、配列全体ではなく、適切にフォーマットされた要約レポートを要約結果とともにテキスト ファイルに出力する必要があります。

1 から 10 までの 1000 個のランダムな整数で適切に埋められた配列を作成できたと思います。問題の頻度カウントの部分に到達したら、1 に等しい整数、2 に等しい整数などの正確な数を出力する必要があります。現在の出力では、1 に等しい値の正確な数ではなく、1 に等しいすべてのランダム値を出力しています。

これが私のコードです。どんな助けでも大歓迎です。また、カウント制御ループが多すぎると思います。多分それは私の問題ですか?

/**
 * This method fills an array with 1,000 random integers, each between 
 * 1 and 10.
 */
public static void main(String[] args) {
    int [] num = new int[1000]; //an array of 1000 integers
    int i; //used as an array index

    for( i= 0; i < 1000; i++)
        num[i] = 1+(int) (Math.random()*((10-1)+1)); 
 //math.Random generates a number between 0 and 1, this method calls for numbers
    //to be between 1 and 10. To make this possible, I need to multiply
    //the math.random by the max-min and add 1 to make sure it generates
    //1,000 random integers between 1 and 10.

    int count1;  //used to count how many integers are equal to 1
    System.out.println ("Integers equal to 1");
    //this loop prints the values in the array
    for(i=0; i<1000; i++)
        if (num[i] == 1)
        {
            i++;
            System.out.println(i + "of the random 1000 integers are equal to 1.");
        }

これは、コードを作成するために使用している教科書の情報です。

変数 countEven は、最初にゼロに初期化されます。次に、配列を反復するときに、偶数のフィボナッチ数ごとにカウントを増やします。偶数をテストするには、Java の剰余演算 (%) を使用します。これは、整数除算演算の剰余を返します。2 で割った余りが 0 の場合、その数は偶数です。

int[] fib = {0,1,1,2,3,5,8,13,21,34} // an array initialized with Fibonacci numbers
int i;// used as an array index
int countEven; used to count how many of the first 10 Fibonacci numbers are even
System.out.println(“Even Fibonacci numbers” );
// this loop prints the values in the array
for( i= 0; i < fib.length; i++)
if (fib[i] % 2 == 0)
{
count++;
System.out.println( fib[i] + “ is even”);
}
system.out.println ( count + “ of the first 10 Fibonacci numbers are even”);

出力は次のようになります: 偶数フィボナッチ数 0 は偶数 2 は偶数 8 は偶数 34 は偶数 最初の 10 個のフィボナッチ数のうち 4 つは偶数です。

4

2 に答える 2

2

いくつかの問題があります。ブロック内

if ( num[i] == 1 ) {
    i++;
    System.out.println(i + "of the random 1000 integers are equal to 1.");    
}

あなたは増加していますi、ではありませんcount1

また、最後に 1 回だけでなく、毎回if ( num[i] == 1 )true の結果を出力しています。

于 2013-10-21T00:47:00.267 に答える