gpt4 book ai didi

java - 仅打印用户输入的且严格小于平均值的数字

转载 作者:行者123 更新时间:2023-12-02 13:40:13 25 4
gpt4 key购买 nike

现在计算平均值,我正在尝试仅在其自己的行中打印出严格小于平均值的用户输入。我尝试这样做,但是出现错误“二元运算符“<”的错误操作数。

import java.util.Scanner;
public class avg
{
public static void main (String args[])
{
Scanner in = new Scanner(System.in);
System.out.println("Enter some numbers(Ctrl-d to quit):");
double[] myArray = new double[10];
int howMany = 0;
double sum=0 ;
double avg=0;
while (in.hasNextDouble()) // Ctrl-D to terminate
{
double userVal = in.nextDouble();
myArray[howMany++] = userVal;

if ( howMany >= myArray.length )
{
//myArray.length = myArray.length * 2;
double[] tempArray = new double[2 * myArray.length];

for (int i = 0; i < howMany; i++)
tempArray[i] = myArray[i];
myArray = tempArray;
}
}
for (int i = howMany - 1; i >= 0; i--)
{
sum += myArray[i];
}
avg = sum/howMany;
System.out.print("Average: "+ avg);
System.out.println(myArray<avg);// to print numbers that the user entered only which are strictly less than the avg. This did not work//

}
}

最佳答案

for (int i = howMany - 1; i >= 0; i--){
sum+=myArray[i];//sum up the array
}
avg = sum / howMany;

要在一行中打印每个double:

System.out.println(avg);

for (int i = 0; i < howMany; i++) {
if(myArray[i] < avg){
System.out.println(myArray[i]);//single line for every double
}
}

在一行中打印所有double:

String oneLine = "["; 
int lowerAvg = 0;
for (int i = 0; i < howMany; i++) {
if(myArray[i] < avg){
oneLine += (i > 0 && ++lowerAvg > 0)?", ":""; // add separator
oneLine += (myArray[i]);
}
}
oneLine+="]";
System.out.println(oneLine);//prints like [1.0, 2.0, ...]

使用 Java 8:

avg = Arrays.stream(myArray, 0, howMany).average().orElse(0);
final double finalAvg = avg;//final variable to use in filter condition
System.out.println(finalAvg);
Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).forEach(System.out::println);//will print every double in a single line
System.out.println(Arrays.toString(Arrays.stream(myArray, 0, howMany).filter(x -> x < finalAvg).toArray()));//Will print the array like [1.0, 2.0, ...]

关于java - 仅打印用户输入的且严格小于平均值的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com