0

わかりました、最後に Java コード用に持っているものを投稿しますが、これが必要なことです。main メソッドでは、how_many (宣言された int) を実行する Lights と呼ばれるブール配列が宣言されています。

次に、 initializeというメソッドを呼び出す必要があります。このメソッドをライト配列に渡し、ライト配列のサイズを (それぞれ) 1 番目と 2 番目の引数として渡します。

この後に for ループが続き、メソッド do_pass を呼び出して how_many の最後に到達し、各配列位置を true または false に切り替えます。これは 2 番目の位置から開始し、true の場合は false に切り替え、false の場合は true に切り替えます。how_many で開始し、how_many で終了するまでこれを行います。

次に、メソッドhow_many_are_onを呼び出すことによって、真 (オン) に切り替えられた数を出力します。

これまでの私のコードは次のとおりです。

import java.util.Scanner;

public class Lab7
{

   public static void main(String args[])
   {
      Scanner stdin = new Scanner(System.in);
      int how_many = stdin.nextInt();
      boolean [] lights = new boolean [how_many];

      initialize (lights[0].how_many);
      for (int a = 0; a < how_many; a++)
      do_pass(lights.length);
   }     

   public static void initialize (boolean [] resets, int size)
   {
      for (int i = size; i < size; i++)
         if (lights[how_many] == true)
            lights[how_many] = false;
   }  

   public static void do_pass(boolean lights[], int start, int end, int skip)
   {
      for (int index = start; index < end; index += skip)
         lights[index] = !(lights[index]);
   }

   public static int how_many_are_on(boolean lights[], int size)
   {
      int sum = 0;
      for (int count = 0; count < size ; count++)
      {
         if (lights[count] == true)
         {
            return true;
            sum ++;
         }
      }
      return false;
   }
}
4

1 に答える 1

0

あなたの問題は、メソッドに適切な量の引数を渡していないことです。initializeメソッドのシグネチャは次のとおりです。

public static void initialize (boolean [] resets, int size)

これは、ブール値の配列と int を受け取ることを意味します。メイン メソッドでは、次のように呼び出します。

initialize (lights[0].how_many);

ご覧のとおり、渡す必要がある 2 つの値ではなく、1 つの値を指定しました。

これと、必要な数の引数を渡さない他のメソッドを修正してください。

于 2013-11-07T04:08:35.643 に答える