这里有什么问题?这不是按降序打印测试成绩,也不是我为平均值获取价值。显示出来0.0平均班级不工作
她的是,我被给出的说明:
该类将允许用户输入5分成一个数组。然后它将按降序重新排列数据并计算数据集的平均值。
属性:
•数据[] - 的阵列,其将包含分数
•均值运算的得分
方法的平均:
•平均-构造。它将为阵列分配内存。使用for循环重复显示用户的提示信息,该提示信息应指示用户应输入分数1,分数2等。注意:计算机以0开始计数,但人们从1开始计数,并且您的提示符应该为为了这。例如,当用户输入分数1时,它将被存储在索引变量0中。然后构造函数将调用selectionSort和calculateMean方法。
•calculateMean - 这是一种使用for循环访问数组中的每个得分并将其添加到正在运行的总和的方法。总数除以得分数(使用数组长度),并将结果存入平均值。
•toString - 返回一个字符串,其中包含数据的降序和均值。
•selectionSort - 他的方法使用选择排序算法将数据集从最高位重新排列到最低位。
import java.util.Scanner;
public class Average
{
private int[] data;
private double mean;
private int total = 0;
public Average()
{
data = new int[5];
Scanner keyboard = new Scanner(System.in);
for(int i = 0; i < data.length; i++)
{
System.out.print("Enter score number " + (i + 1) + ": ");
data[i] = keyboard.nextInt();
}
}
public void calculateMean()
{
int i, s = 0;
for(i = 0; i < data.length; i++)
{
s = s + data[i];
}
mean = (double)s/(data.length);
}
public void selectionSort()
{
int maxIndex;
int maxValue;
for(int startScan = 0; startScan < data.length - 1; startScan++)
{
maxIndex = startScan;
maxValue = data[startScan];
for(int index = startScan + 1; index < data.length; index++)
{
if(data[index] > maxValue)
{
maxValue = data[index];
maxIndex = index;
}
}
data[maxIndex] = data[startScan];
data[startScan] = maxValue;
}
}
public String toString()
{
String output;
output = "The test scores in descending order are \n";
for(int i = 0; i < data.length; i++)
{
output = output + data[i] + " ";
}
output = output + "\nThe average is " + mean;
return output;
}
}
为什么-1没有评论? – HeatfanJohn