這裏有什麼問題?這不是按降序打印測試成績,也不是我爲平均值獲取價值。顯示出來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