Java 如何在数组中查找大于、小于或等于某个值的数字?
我试图输出小于5的值和大于数组中所有值平均值的值。我不知道怎样才能把所有的问题都解决并输出正确的数字。有人能帮忙吗 这就是我所拥有的,我就快到了,我只是不知道我做错了什么Java 如何在数组中查找大于、小于或等于某个值的数字?,java,arrays,loops,for-loop,Java,Arrays,Loops,For Loop,我试图输出小于5的值和大于数组中所有值平均值的值。我不知道怎样才能把所有的问题都解决并输出正确的数字。有人能帮忙吗 这就是我所拥有的,我就快到了,我只是不知道我做错了什么 { int[] numbers = {2, 4, 6, 8, 10, 12, 14, 16}; int sum = 0; for (int x : numbers) sum += x; System.out.println("Numbers in order:"); {
{
int[] numbers = {2, 4, 6, 8, 10, 12, 14, 16};
int sum = 0;
for (int x : numbers)
sum += x;
System.out.println("Numbers in order:");
{
for(int x = 0; x < numbers.length; ++x)
System.out.println(numbers[x]);
}
System.out.println("Numbers in reverse order:");
{
for(int x = 0; x < numbers.length; ++x)
System.out.println(numbers[x]);
}
System.out.println("The sum of all eight numbers is: " + sum);
System.out.println("The lowest number is: " + numbers[0]);
System.out.println("The highest number is: " + numbers[7]);
System.out.println("The average of all eight numbers is: " + sum * 1.0 / 8);
System.out.println("All numbers higher than the average are: ");
{
for(int x = 0; x < numbers.length && x > 9;)
{numbers[x] = x + 1;}
int x = 0;
System.out.println(numbers[x]);
}
System.out.println("Numbers less than 5: ");
{
for(int x = 0; x < numbers.length && x > 5;)
{numbers[x] = x + 1;}
int x = 0;
System.out.println(numbers[x]);
}
}
{
int[]数字={2,4,6,8,10,12,14,16};
整数和=0;
用于(整数x:数字)
总和+=x;
System.out.println(“顺序中的数字:”);
{
对于(int x=0;x9;)
{number[x]=x+1;}
int x=0;
System.out.println(数字[x]);
}
System.out.println(“小于5的数字:”);
{
对于(int x=0;x5;)
{number[x]=x+1;}
int x=0;
System.out.println(数字[x]);
}
}
计算平均值:
int average=sum/numbers.length;
高于平均值的所有数字:
for(int x=0;x平均值){
System.out.println(数字[x]);
}
}
少于5个的数字:
for(int x=0;x
请考虑如何将括号设置在循环中。它是这样的:
for (int i = 0; i < x; i++){
// do stuff
}
for(int i=0;i
我假设这是一个家庭作业问题,所以我不会给你一个直接的代码答案,但无论如何我都会尽力帮助你
System.out.println("Numbers less than 5: ");
for(int x = 0; x < numbers.length && x > 5;) {
numbers[x] = x + 1;
}
System.out.println(“小于5的数字:”);
对于(int x=0;x5;){
数字[x]=x+1;
}
循环计数语句通常由三部分组成(以“;”分隔):
for (int x = 0; x < numbers.length; x++) {
if (/* number is less than 5 */) {
// print number
}
}
for(int x=0;x
现在我们有一个for循环,它将遍历整个数组,从0开始计算x(for语句的第一部分,“int x=0”),直到我们以1的步长到达数组的末尾(第二部分,“x
Integer[]数组={1,2,3,4,5,6};
int sum=Arrays.stream(array).reduce(0,(a,b)->a+b);
列表结果=数组。流(数组)
.过滤器(x->sum*1.0/array.length我建议将每个任务放在自己的方法中。这将使您的代码更易于创建、阅读和理解。我不熟悉编程,循环对我来说仍然有点棘手,我没有意识到我需要if语句。我也没有想到为平均值初始化一个单独的变量,这会让一切变得更复杂更容易阅读。谢谢你的帮助!你不需要为平均值初始化一个单独的int
。即使你这样做了,我也不知道你为什么要使用int
,因为这大部分是截断你的平均值。System.out.println(“所有八个数字的平均值是:”+(sum/numbers.length)
可以。虽然没有格式设置。我使用int,因为数组中的数字是整数,不会使用浮点数。她想要平均值,因为比较,并且给出一些计算名称是干净的代码,当然这是一个小的计算,但对于未来,我认为最好从我开始n一小段路;)在OP的代码中,他们意识到除法不应该包含整数结果,因为他们使用1.0/8
而不是1/8
。最好得到实际结果,一个浮点,并有意将其格式化或强制转换为整数,而不是让编译器截断它。我感谢您的解释。I d我不明白循环的各个部分都做了些什么,但你的解释很有道理。我在大学里上了一堂java课,考虑到我对编程知之甚少,这本书有时很难理解。谢谢。
Integer[] array = {1,2,3,4,5,6};
int sum = Arrays.stream(array).reduce(0, (a, b) -> a + b);
List<Integer> result = Arrays.stream(array)
.filter(x -> sum*1.0/array.length <= x && x < 5 )
.collect(Collectors.toList());