输出随机数数组中的所有奇数和偶数



我声明了一个大小为300的整数数组,其随机值从1到500。我需要输出数组中所有的偶数和奇数,每行10。

这是我的代码,但我不能每行打印10个数字它也不能在我的数组中打印足够的偶数和奇数

import java.util.Scanner;
public class Array {
public static void main(String[] args)
{ 
Scanner keyboard=new Scanner(System.in); 


int[] A = new int[300]; 
for(int i=0;i<A.length;i++)
{
A[i]=(int)(Math.random()*500+1);
}

for(int i=0;i<A.length;i++){
System.out.print(A[i]+" ");
if(((i+1) % 10) == 0){
System.out.println();
}         
}
System.out.println("Odd Numbers:"); 

for(int i=0;i<A.length;i++){  
if(A[i]%2!=0 && ((i+1) % 10) == 0){
System.out.print(A[i]+" ");
}
}
System.out.println();
System.out.println("Even Numbers:"); 
for(int i=0;i<A.length;i++){

if(A[i]%2==0 && ((i+1) % 10) == 0){  
System.out.print(A[i]+" ");  
}  
}



}
}

您必须使用计数器并检查它是否为count % 10 == 0。如果是,则移到下一行。

public static void main(String... args) {
final IntPredicate odd = value -> value % 2 != 0;
final IntPredicate even = value -> value % 2 == 0;
int[] arr = randomArray(300);
System.out.println("Odd Numbers:");
printNumbers(arr, odd);
System.out.println();
System.out.println("Even Numbers:");
printNumbers(arr, even);
}
private static int[] randomArray(int total) {
Random random = new Random();
return IntStream.range(0, total)
.map(i -> random.nextInt(500) + 1)
.toArray();
}
private static void printNumbers(int[] arr, IntPredicate predicate) {
int i = 0;
for (int value : arr) {
if (predicate.test(value)) {
System.out.format("%3d ", value);
if (++i % 10 == 0)
System.out.println();
}
}
System.out.println();
}

最新更新