Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 普通班不工作_Java_Class - Fatal编程技术网

Java 普通班不工作

Java 普通班不工作,java,class,Java,Class,这里怎么了?它并没有按降序打印考试分数,我也没有得到平均值。显示为0.0 以下是我收到的指示: 该类允许用户在数组中输入5个分数。然后,它将按降序重新排列数据,并计算数据集的平均值 属性: •数据[]-包含分数的数组 •平均得分的算术平均值 方法: •建造商的平均值。它将为阵列分配内存。使用for循环反复向用户显示提示,提示用户应输入分数1、分数2等。注意:计算机从0开始计数,但人们从1开始计数,您的提示应说明这一点。例如,当用户输入分数1时,它将存储在索引变量0中。然后,构造函数将调用sele

这里怎么了?它并没有按降序打印考试分数,我也没有得到平均值。显示为0.0

以下是我收到的指示:

该类允许用户在数组中输入5个分数。然后,它将按降序重新排列数据,并计算数据集的平均值

属性:

•数据[]-包含分数的数组

•平均得分的算术平均值

方法:

•建造商的平均值。它将为阵列分配内存。使用for循环反复向用户显示提示,提示用户应输入分数1、分数2等。注意:计算机从0开始计数,但人们从1开始计数,您的提示应说明这一点。例如,当用户输入分数1时,它将存储在索引变量0中。然后,构造函数将调用selectionSort和calculateMean方法

•calculateMean这是一种使用for循环访问数组中每个分数并将其添加到运行总数的方法。总数除以分数数(使用数组长度),结果存储到平均值中

•toString返回一个包含降序数据和平均值的字符串

•选择排序此方法使用选择排序算法将数据集从最高到最低重新排列

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;
    }
}
import java.util.Scanner;
公共课平均分
{
私有int[]数据;
私人双平均;
私有整数总计=0;
公共海损()
{
数据=新整数[5];
扫描仪键盘=新扫描仪(System.in);
对于(int i=0;i最大值)
{
maxValue=数据[索引];
maxIndex=索引;
}
}
数据[maxIndex]=数据[startScan];
数据[startScan]=最大值;
}
}
公共字符串toString()
{
字符串输出;
output=“测试分数按降序排列为\n”;
对于(int i=0;i
您从未调用过
calculateMean()
,这就是平均值为零的原因。在main或创建Average实例的任何地方,都需要在引用
Average.toString()
之前调用
calculateMean()
,您从未调用
calculateMean()
,这就是平均值为零的原因。在main中或创建Average实例的任何地方,在引用
Average.toString()
之前都需要调用
calculateMean()
,您需要使用方法返回和接收值的方法。下面是您的程序的一个小模型,展示我的意思:

public static void main(String... args)
{
    System.out.println(calculateMean(getData()));
}

public static int[] getData()
{
    data = new int[5];
    Scanner s = new Scanner(System.in);

    for (int i = 0; i < data.length; i++)
    {
        System.out.print("Enter score number " + (i++) + ": ");
        data[i] = Integer.parseInt(s.nextLine());
    }
    s.close();
    return data;
}

public static double calculateMean(int[] data)
{

    int s = 0;
    for (int i = 0; i < data.length; i++)
    {
        s += data[i];
    }
    return mean = (double) s / (data.length);
}
publicstaticvoidmain(字符串…参数)
{
System.out.println(calculateMean(getData());
}
公共静态int[]getData()
{
数据=新整数[5];
扫描仪s=新的扫描仪(System.in);
对于(int i=0;i
getData()
方法从用户那里获取我们需要的所有信息,然后我们获取这些数据并将其直接传递给
calculateMean()
方法。这反过来又为我们算出了所有分数的平均值。那么我们所要做的就是把它打印出来。剩下的就交给你了,因为这看起来像是家庭作业


试运行

输入:
4,67,3,7,3
(逗号表示新行)

输出:
16.8

您需要使用方法返回并接受值的方法。下面是您的程序的一个小模型,展示我的意思:

public static void main(String... args)
{
    System.out.println(calculateMean(getData()));
}

public static int[] getData()
{
    data = new int[5];
    Scanner s = new Scanner(System.in);

    for (int i = 0; i < data.length; i++)
    {
        System.out.print("Enter score number " + (i++) + ": ");
        data[i] = Integer.parseInt(s.nextLine());
    }
    s.close();
    return data;
}

public static double calculateMean(int[] data)
{

    int s = 0;
    for (int i = 0; i < data.length; i++)
    {
        s += data[i];
    }
    return mean = (double) s / (data.length);
}
publicstaticvoidmain(字符串…参数)
{
System.out.println(calculateMean(getData());
}
公共静态int[]getData()
{
数据=新整数[5];
扫描仪s=新的扫描仪(System.in);
对于(int i=0;i
getData()
方法从用户那里获取我们需要的所有信息,然后我们获取这些数据并将其直接传递给
calculateMean()
方法。这反过来又为我们算出了所有分数的平均值。那么我们所要做的就是把它打印出来。剩下的就交给你了,因为这看起来像是家庭作业


试运行

输入:
4,67,3,7,3
(逗号表示新行)

输出:
16.8

看起来您不是
public static void main(String[] args){
       Average avg = new Average();
       avg.selectionSort();
       avg.calculateMean();    
       System.out.println(avg);
    }