完整分配是:将10个浮点数作为输入,并显示数字的平均值,然后显示大于平均值的所有数字。我能够很容易地获得平均值,但是当我无法打印出大于平均值的数字时。我之前尝试了一些东西,但改变了它,因为它只是打印出一个内存位置而不是实际的数字。任何帮助表示赞赏。
如果我在前面提到的问题中不清楚:目前我的代码输出用户输入数字时的平均值,并将其与新数字进行比较。我想要做的是将输入的所有数字与所有10个数字的最终平均值进行比较。我不太确定如何做到这一点。
import java.util.Scanner;
public class ArrayProgram2
{
public static void main(String[]args)
{
Scanner scan = new Scanner(System.in);
double [] numberList = new double[10];
double [] largerList = new double [10];
int largerCounter = 0;
double sum = 0;
for(int i = 0; i < 10; i++){
System.out.println("Please enter any number");
double data = scan.nextDouble();
numberList[i] = data;
sum += numberList[i];
double average = sum/numberList.length;
if(data > average){
largerList[largerCounter] = data;
largerCounter++;
}
}
for(int i = 0; i <largerCounter; i++){
System.out.println("The numbers greater than the average are " + " " + largerList[i]);
}
double average = sum/numberList.length;
System.out.println("The average of the numbers is " + average);
}//main
}//class
答案 0 :(得分:0)
您的代码将在循环结束时获得最终平均值(所有10个元素将相加,然后除以10)。第二个循环通过输入double来比较它们的最终平均值是你需要的。
for(int i = 0; i <numberList; i++){
if (numberList[i] > average) {
largerList[largerCounter] = data;
largerCounter++;
}
}
在获得所有输入(您的第一个循环)后,应立即进行
答案 1 :(得分:0)
在计算平均值之前,你应该计算正好总和,此时你计算第一个数字的平均值,然后是前2个数字,然后是前3个等等。第一个{{1除非(如第一个评论所述)您想要将当前数字与当前平均值进行比较,否则不需要:
double average = sum/numberList.length;
如果您想检查哪些数字大于整体平均值,请更改
for(int i = 0; i < 10; i++){
System.out.println("Please enter any number");
double data = scan.nextDouble();
numberList[i] = data;
sum += numberList[i];
/*Not needed
double average = sum/numberList.length;
if(data > average){
largerList[largerCounter] = data;
largerCounter++;
*/
}
}
类似于:
for(int i = 0; i <largerCounter; i++){
System.out.println("The numbers greater than the average are " + " " + largerList[i]);
}
double average = sum/numberList.length;
System.out.println("The average of the numbers is " + average);
答案 2 :(得分:-1)
试试这个:
import java.util.Scanner;
public class ArrayProgram2
{
public static void main(String[]args)
{
Scanner scan = new Scanner(System.in);
double [] numberList = new double[10];
double [] largerList = new double [10];
int largerCounter = 0;
double sum = 0;
for(int i = 0; i < 10; i++){
System.out.print("Please enter any number: ");
numberList[i] = scan.nextDouble();
sum += numberList[i];
}
double average = sum/numberList.length;
for(int i = 0; i < 10; i++){
if(numberList[i] > average){
largerList[largerCounter] = numberList[i];
largerCounter++;
}
}
for(int i = 0; i <largerCounter; i++){
System.out.println("The numbers greater than the average are " + " " + largerList[i]);
}
System.out.println("The average of the numbers is " + average);
}//main
}//class