Java 用单独的方法对数组求平均值
我的原始代码是:Java 用单独的方法对数组求平均值,java,Java,我的原始代码是: import javax.swing.JOptionPane; public class average { public static void main(String[] args) { String str1; String str2; String str3; int numbersToAverage; str1 = JOptionPane.showInp
import javax.swing.JOptionPane;
public class average {
public static void main(String[] args) {
String str1;
String str2;
String str3;
int numbersToAverage;
str1 = JOptionPane.showInputDialog("Please enter the amount of numbers you would like to average: ");
numbersToAverage = Integer.parseInt(str1);
// while statement will provide error message so user cannot enter 0
while (numbersToAverage < 1) {
str3 = JOptionPane.showInputDialog("Invalid entry: Please enter one or more numbers to average: ");
numbersToAverage = Integer.parseInt(str3);
}
// array size is set to equal user input
double[] numbers = new double[numbersToAverage];
double sum = 0;
for (int i = 0; i < numbersToAverage; i++) {
str2 = JOptionPane.showInputDialog("Enter number " + (i + 1)
numbers[i] = Double.parseDouble(str2);
// the sum equals numbers in the array added together
sum += numbers[i];
}
// Calculates the average of the numbers entered by the user
double average = sum / numbersToAverage;
// Prints in a dialogue box to user the average
JOptionPane.showMessageDialog(null, "The average of the numbers you entered is: " + average);
}
}
import javax.swing.JOptionPane;
公共课平均分{
公共静态void main(字符串[]args){
字符串str1;
字符串str2;
字符串str3;
平均整数;
str1=JOptionPane.showInputDialog(“请输入要平均的数字量:”);
numbersToAverage=Integer.parseInt(str1);
//while语句将提供错误消息,因此用户无法输入0
while(平均数<1){
str3=JOptionPane.showInputDialog(“无效条目:请输入一个或多个要求平均值的数字:”);
numbersToAverage=Integer.parseInt(str3);
}
//数组大小设置为等于用户输入
double[]数字=新的double[numbers ToAverage];
双和=0;
for(int i=0;i
我现在必须用另一种方法计算平均值,我很难弄清楚如何计算平均值?到目前为止,我有:
import javax.swing.JOptionPane;
public class average {
public static void main(String[] args) {
String str1;
String str2;
String str3;
int numbersToAverage;
str1 = JOptionPane
.showInputDialog("Please enter the amount of numbers you would like to average: ");
numbersToAverage = Integer.parseInt(str1);
// while statement will provide error message so user cannot enter 0
while (numbersToAverage < 1) {
str3 = JOptionPane
.showInputDialog("Invalid entry: Please enter one or more numbers to average: ");
numbersToAverage = Integer.parseInt(str3);
}
// array size is set to equal user input
double[] numbers = new double[numbersToAverage];
//double sum = 0;
for (int i = 0; i < numbersToAverage; i++) {
str2 = JOptionPane.showInputDialog("Enter number " + (i + 1)
numbers[i] = Double.parseDouble(str2);
JOptionPane.showMessageDialog(null, "The average of the numbers you entered is: " );
}
}
public static double average(double[] array){
double sum;
sum += array[i];
double average = sum / array.length;
return average;
}
}
import javax.swing.JOptionPane;
公共课平均分{
公共静态void main(字符串[]args){
字符串str1;
字符串str2;
字符串str3;
平均整数;
str1=JOptionPane
.showInputDialog(“请输入要平均的数字量:”);
numbersToAverage=Integer.parseInt(str1);
//while语句将提供错误消息,因此用户无法输入0
while(平均数<1){
str3=作业窗格
.showInputDialog(“无效输入:请输入一个或多个平均值:”);
numbersToAverage=Integer.parseInt(str3);
}
//数组大小设置为等于用户输入
double[]数字=新的double[numbers ToAverage];
//双和=0;
for(int i=0;i
我很难弄清楚如何在main方法中调用它,以及如何获得正确的计算。这样做的最佳方法是什么?我需要在average方法中使用for循环,还是应该将其保留在main中?是的,您需要一个循环,尝试这样做:
public static double average(double[] array) {
if(array.length == 0) {
return 0;
}
double sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
double average = sum / array.length;
return average;
}
公共静态双平均(双[]数组){
如果(array.length==0){
返回0;
}
双和=0;
for(int i=0;i
只需执行以下操作:
StatUtils.mean(array);
您可以在Java 8中找到关于
StatUtils
的更多信息,您可以使用流:
final double avg = array.length > 0 ? DoubleStream.of(array).sum() / array.length : 0;
或在自己的功能中:
public static double average(final double[] array) {
return array.length > 0 ? DoubleStream.of(array).sum() / array.length : 0;
}
无法平均0个数字。这只是确保程序运行时没有输入错误的一种方法。主方法中的for循环也是正确的吗?如果给定数组的大小为0,这将导致错误。我想,我在主方法中设置了它,以防止这种情况发生。@user3455588,对不起,我没有理解你的意思?@ifLoop我编辑了我的答案,你知道吗我需要任何愚蠢的错误来否决投票!!