好的我会在最后发布我的Java代码,但这就是我需要它做的事情。 在main方法中,声明了一个名为Lights的布尔数组,它通过how_many(声明为int)运行。
然后我必须调用一个名为 initialize 的方法,我将在lights数组中传递lights数组的大小作为第一个和第二个参数(分别)。
接下来是一个for循环,它一遍又一遍地调用方法do_pass,直到我到达how_many结束并切换每个数组位置为true或false。然后,这将从第二个位置开始,如果为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;
}
}
答案 0 :(得分:0)
您的问题是您没有向您的方法传递适量的参数。这是您的initialize
方法的签名:
public static void initialize (boolean [] resets, int size)
这意味着它接收一个布尔数组和一个int。在您的主要方法中,您可以这样称呼它:
initialize (lights[0].how_many);
正如您所看到的,您给了它一个值,而不是您需要传递的值。
解决此问题,以及其他一些不传递所需数量的参数的方法。