import java.util.*;
public class userInputDoubleArray
{
private static double getAverage(double[] nums){
double sum = 0;
for (int y= 0; y < nums.length; y++)
{
sum= sum + nums[y];
}
return sum;
}
private static void showLargerValues(double[] nums, double avg)
{
for (int z= 0; z < nums.length; z++)
{
if (nums[z] > avg)
{
System.out.print("The numbers higher than average are " + nums[z] + " ");
}
}
}
public static void main(String[] args)
{
double[] nums = new double[10];
Scanner inp= new Scanner (System.in);
for (int i= 0; i < nums.length; i++)
{
System.out.println("Please enter a double.");
nums[i]= inp.nextDouble();
}
double average = getAverage(nums);
System.out.println("The average is " + average);
showLargerValues(nums, average);
}
}
是的,所以我试图打印出数字&gt;比平均水平。我的问题是,虽然它编译,似乎for / if showLargerValues方法不打印数字。
答案 0 :(得分:2)
您只是总结了值,但是您错过了除以数组长度的除法:
private static double getAverage(double[] nums){
double sum = 0;
for (int y= 0; y < nums.length; y++)
{
sum= sum + nums[y];
}
return sum / nums.length;
}
答案 1 :(得分:1)
你会为此而踢自己。
private static double getAverage(double[] nums){
double sum = 0;
for (int y= 0; y < nums.length; y++)
{
sum= sum + nums[y];
}
return sum;
}
你永远不会将总和除以这里的长度。 &#34;平均&#34;实际上是总和。
答案 2 :(得分:1)
原因是,你的方法getAverage()没有返回平均值,它返回总和。
更换线路
return sum;
由
return (sum / nums.length);