我正在尝试计算由文本字段接收到的输入填充的数组的总数、平均值和中位数。我已经设法计算出总数和平均值,但我无法让中位数起作用。我认为在执行此操作之前需要对数组进行排序,但我不确定如何执行此操作。这是问题所在,还是我没有找到另一个问题?这是我的代码:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
public class whileloopq extends Applet implements ActionListener
{
Label label;
TextField input;
int num;
int index;
int[] numArray = new int[20];
int sum;
int total;
double avg;
int median;
public void init ()
{
label = new Label("Enter numbers");
input = new TextField(5);
add(label);
add(input);
input.addActionListener(this);
index = 0;
}
public void actionPerformed (ActionEvent ev)
{
int num = Integer.parseInt(input.getText());
numArray[index] = num;
index++;
if (index == 20)
input.setEnabled(false);
input.setText("");
sum = 0;
for (int i = 0; i < numArray.length; i++)
{
sum += numArray[i];
}
total = sum;
avg = total / index;
median = numArray[numArray.length/2];
repaint();
}
public void paint (Graphics graf)
{
graf.drawString("Total = " + Integer.toString(total), 25, 85);
graf.drawString("Average = " + Double.toString(avg), 25, 100);
graf.drawString("Median = " + Integer.toString(median), 25, 115);
}
}
原文由 Will 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 中的 Arrays 类有一个静态排序函数,您可以使用
Arrays.sort(numArray)
调用它。