我正在用java写一个关于从程序中提取四的倍数的程序。程序看起来像这样:
import java.util.Random;
import java.util.Arrays;
public class Assignment8
{
public static void main ( String [] args )
{
int i = 0;
int [] array1 = new int[100]; // creating an array of 100 numbers
for (int number = 1; number < 100; number++)
{
array1[number] = (int)(Math.random() * 100);
}
System.out.println("The numbers divisible by four are: " + Arrays.toString(Isdivisibleby4( array1 )));
}
public static int [] Isdivisibleby4(int [] v)
{
int arraysize = 0;
for( int i = 0; i < v.length; i++ )
if( v[i] % 4 == 0 )
arraysize++;
int [] divisibilityArray = new int[arraysize];
int j = 0;
for( int i = 0; i < v.length; i++ )
{
if( i % 4 == 0)
{
j++;
}
}
return divisibilityArray;
}
}
但是,输出仅为0。非常感谢您的帮助。
发布于 2018-06-08 08:13:19
你从来没有把任何数字复制到divisibilityArray
中。您可能想要添加如下内容
divisibilityArray[j] = v[i];
在j++;
之上的if
条件中。这将确保条目实际上从一个数组复制到另一个数组。
此外,if
条件可能应该是if( v[i] % 4 == 0 )
,而不是if( i % 4 == 0 )
。否则,您将获得每四个数字,而不是每个4的倍数;您甚至可能获得一个ArrayIndexOutOfBoundsException
。
https://stackoverflow.com/questions/50751663
复制相似问题