我正在尝试输出小于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:");
{
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]);
}
}
答案 0 :(得分:1)
计算平均值:
int average = sum / numbers.length;
所有数字均高于平均值:
for(int x = 0; x < numbers.length; x++) {
if(numbers[x] > average){
System.out.println(numbers[x]);
}
}
小于5的数字:
for(int x = 0; x < numbers.length; x++) {
if(numbers[x] < 5){
System.out.println(numbers[x]);
}
}
请考虑如何在循环中设置大括号。它是这样的:
for (int i = 0; i < x; i++){
// do stuff
}
答案 1 :(得分:1)
我认为这是一个家庭作业问题所以我不会给你一个直接的代码答案,但试着提供帮助。
System.out.println("Numbers less than 5: ");
for(int x = 0; x < numbers.length && x > 5;) {
numbers[x] = x + 1;
}
计数for-loop语句通常由三部分组成(以“;”分隔):
当迭代数组并尝试查找符合特定条件的元素(在本例中“数字小于5”)时,您不应该在循环条件中执行此操作(上面的步骤2),如果对于任何条件都是如此数组中的一个数字循环将停止执行。您应该在循环中使用 if -statement检查它。
for (int x = 0; x < numbers.length; x++) {
if (/* number is less than 5 */) {
// print number
}
}
现在我们有一个for循环,通过从0开始计算x(for语句的第一部分,“int x = 0”)来遍历整个数组,直到我们到达数组的末尾(第二部分, “x&lt; numbers.length”)步长为1(第三部分,“x ++”。也可写成“x = x + 1”)。在每次迭代中,我们现在可以使用 if -statement检查数组的元素(数字[x])是否小于5,如果是打印它。
答案 2 :(得分:0)
在java 8中,您可以使用lambda表达式来实现与for循环相同但更短的结果。在这里阅读有关lambda表达式的更多信息:Lambda Expressions
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());