在新数组中正确设置了前4个值。它与变量“ count”的设置不正确有关。该程序的目的是简单地获取偶数,并将其放入新数组中。
我加了4作为测试,这似乎很不错,但我认为这不是问题。
int[] list = {8,5,4,11,12,2,1,3,10,6,7};
int count = 0;
int gr = 0;
for(int n=0; n<list.length; n++)
{
if(list[n] % 2 == 0)
{
count++;
}
}
int[] evn = new int[count];
for(int k = 0; k<=count; k++)
{
if(list[k] % 2 == 0)
evn[gr++] = list[k];
}
return evn;
当前,数组应打印“ 8,4,12,2,10,6”时打印“ 8,4,12,2,0,0”
答案 0 :(得分:2)
之所以会这样,是因为count
总是小于数组的大小{list.length
),因此在第二个for循环中,您永远不会迭代直到数组的末尾。
更改第二个for循环以迭代到数组的末尾,如下所示:
for(int k = 0; k < list.length; k++)
答案 1 :(得分:1)
您仅遍历list
的一部分,如for
条件中所述:
for(int k = 0; k<=count; k++)
^--here--^
这是因为count
的值小于原始数组的长度。更改此条件以遍历整个数组:
for(int k = 0; k<list.length; k++)
答案 2 :(得分:0)
要遍历整个list
,请更改以下内容:
for(int k = 0; k<=count; k++)
收件人
for(int k = 0; k<list.lengtb; k++)