我正在尝试创建一个程序,每计数2,它将值更改为"打开"或" 1"。
1-2-3-4-5-6-7-8-9-10
0-1-0-1-0-1-0-1-0-1 **这样的东西**在此之后每三个计数就变成了#34; Open"或" 1"。
但是如果盒子已经打开了#34;或" 1"。它应该"关闭"或" 0"。
以及最多150个计数。
我的问题是我无法将输出显示成一个数组。如果它是一个不同的数组,我没有问题。帮助......
int[] box = new int [150];
int b = 0;
for (a = 1; a < box.length; a++) {
if (a % 2 == 0) {
box[b] = 1;
}
else {
box[b] = 0;
}
}
for (int c = 1; c < box.length; c++) {
if (c % 3 == 0) {
if (box[b] == 1) {
box[b] = 0;
}
else {
box[b] = 1;
}
}
else {
box[b] = 0;
}
System.out.print(box[b]); //putting the result here only result in 001001001;
}
/*System.out.print(box[b]); -- Putting it outside results in just zero.
如何将两个for循环合并为一个数组?我希望这对你们所有人都有意义。只要使用for循环和数组,一种不同的方法也可以。 当两者在一起时,输出程序应该是011101011101 ...
这是我现在做的第二个程序请检查原因我想要添加所有&#34; 0&#34;&#39;&#34; 1&#34;&# 39;程序执行后我只想知道如何添加它。将它放在循环中将循环到150次
int box [] = new int [150];
int ones= 0;
int zero= 0;
for(int a= 0;a<box.length;a = a+2){
box[a] = 1;
for(int b =0;b<box.length;b = b+3){
if(box[b]==1){
box[b] = 0;
zero++;
}
else{
box[b] = 1;
one++;
}
System.out.print("No. of ones : " + one); /* putting it here loops the additions to up to 150 and resulting to thousands of ones */
}
System.out.print(No. of ones: " + one); /* putting it here will result to 0 and loops up to 150 counting up to thousands of zero */
}
for(int i =0; i < box.length; i++){
System.out.print(box[i]); Resulting to 00111 - up to 150 /* the next count is by 4 is this enough to for loops to add it by 5 the next and then add it by 6 then 7 and up to 150 counts till hitting the "Open" or "1"?
System.out.print("No. of one: " + sum); } -- putting it here will only result to 0
谢谢你希望你理解这些问题(很多都是这些问题)并且我很困惑
答案 0 :(得分:2)
您正在a
以及稍后c
进行迭代,但会分配到box[b]
。 b
仍为0
,因此您继续分配给box[0]
。您应该分配到box[a]
和box[c]
。
此外,您应该从0开始for循环,而不是1。
答案 1 :(得分:0)
您只需要一个循环。问题只在于创造正确的条件。
int box[]=new int [150];
for (int i=1; i< box.length+1; i++) {
boolean condition = i % 2 == 0 || i % 3 == 0;
box[i-1] = condition ? 1 : 0;
System.out.print(box[i-1]);
}
条件检查索引是否除以2或3.
答案 2 :(得分:0)
您正在迭代a
和c
,但您正在分配box[b]
。由于b
仍为0
,因此您每次都会将1
或0
分配到数组中的第一个位置(box[0]
)。您应该使用迭代器(box[a]
和box[c]
)索引数组,以便每次引用数组中的不同位置时。
此外,您每次都在遍历整个数组。另一种方法是“跳过”你不想要的数组中的索引,例如这样做:
for(a=0;a<box.length;a = a + 2)
box[a]=1;
这将只遍历数组中的所有偶数。
最后,您可以在第二个循环中使用box[c] = box[c] ^ 1
(^
表示XOR
),而不是使用if(box[c]==1)
。这将删除if语句,同时继续做你想要的。
修改强>
对于打印,您应该使用for循环遍历数组并打印数组中的每个位置,如下所示:
for (i=0;i < box.length;i++)
{
System.out.print(box[i]);
}