我必须使用数组来处理大学问题,这就是:
编写一个Java程序,它将创建一个大小为10的数组,并将前10个偶数放在比给定用户输入更大的位置。
这就是我尝试的但我无法获得正确的输出
import java.util.Scanner;
public class EvenNumbers
{
public static void main (String args[])
{
Scanner scan = new Scanner(System.in);
int array[]=new int[10];
System.out.println("Please enter a number:");
int num = scan.nextInt();
num+=1;
int i=0;
while(i<10)
{
if(num/2==0)
{
array[i]=num;
num++;
i++;
}
else
num++;
}
for(int j=0; j<array.length; j++)
{
System.out.print(array[j]);
}
}
}
答案 0 :(得分:2)
您应该检查num%2==0
而不是num/2==0
此外,您还可以通过仅对偶数进行迭代来简化程序:
num++;
if (num % 2 == 1) // make sure that num is even
num++;
for(int i = 0; i < 10; i++)
{
array[i] = num;
num += 2; // jump to the next even number
}
答案 1 :(得分:1)
您可以使用if (n % 2 == 0)
,因为如果if (n % 2 == 0)
甚至,n
可以运行,n
可以平均分为2)。如果if (n % 2 == 1)
奇数,则n
会运行。%
符号称为 mod 。它喜欢划分和获得剩余部分。
试试这个:)
import java.util.Scanner;
public class EvenNumbers
{
public static void main (String args[])
{
Scanner scan = new Scanner(System.in);
int array[]=new int[10];
System.out.println("Please enter a number:");
int num = scan.nextInt();
num+=1;
int i=0;
while(i<10)
{
if(num%2==0)
{
array[i]=num;
num++;
i++;
}
else
num++;
}
for(int j=0; j<array.length; j++)
{
System.out.print(array[j]);
}
}
}
答案 2 :(得分:1)
只是为了好玩,你可以使用java-8 IntStream
class
IntStream.iterate(++num + num % 2, i -> i + 2).limit(10).forEach(System.out::println);
// ++num; generated numbers should be greater than the given user input
// ++num + num % 2; num variable should be even itself.