当前位置: 首页 > 知识库问答 >
问题:

普通班不工作

薛鹏飞
2023-03-14

这是怎么回事?它不是按降序打印考试成绩,我也没有得到平均值的值。显示 0.0

她给我的指示是:

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

属性:

•data[]-将包含分数的数组

• 平均值 — 分数的算术平均值

方法:

平均-构造函数。它将为数组分配内存。使用for循环重复向用户显示提示,该提示应指示用户应输入分数1、分数2等。注意:计算机从0开始计数,但人们从1开始计数,您的提示应考虑到这一点。例如,当用户输入分数1时,它将存储在索引变量0中。然后构造函数将调用select Sort和compateMean方法。

计算平均值——这是一种使用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;
    }
}

共有3个答案

司徒光霁
2023-03-14

看起来您没有首先执行计算Mean()方法调用,如下所示:

public static void main(String[] args) {
    Average average = new Average();
    average.calculateMean();
    average.selectionSort();
    System.out.println(average.toString());
}
何兴安
2023-03-14

你需要的只是

public static void main(String[] args){
       Average avg = new Average();
       avg.selectionSort();
       avg.calculateMean();    
       System.out.println(avg);
    }

一切都很到位。我第二@HeatfanJohn

富钧
2023-03-14

您需要使用方法返回和接收值的方法。这里有一个程序的小模型来说明我的意思:

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);
}

< code>getData()方法从用户那里获取我们需要的所有信息,然后我们获取这些数据,并将其传递给< code>calculateMean()方法。这反过来又为我们计算出了所有分数的平均值。那我们要做的就是打印出来。既然这看起来像家庭作业,我就把剩下的交给你了。

试运行:

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

输出:16.8

 类似资料:
  • 我有最新版本的VsCode,我正在按照教程创建一个基本的下一个。js应用程序 我注意到教程使用了JSX in。JS文件,我的编辑器没有抱怨JSX。 这怎么可能?VsCode默认情况下是否识别中的JSX。JS文件?下一步做什么。js自动编译JSX?

  • 重复执行一系列命令:可以指定表示重复次数的数字或直到遇到 break。 Loop [, Count] 参数 Count 执行循环体 (重复) 的次数. 如果省略, Loop 会无期限继续, 直到遇到 break 或 return. 如果 Count 是一个变量引用例如 %ItemCount%, 每当此变量为空或包含小于 1 的数字时, 循环会被完全跳过. 由于必须支持 文件模式循环, Count

  • 4.3.2 普通工程和库工程的不同 库工程的 main 输出是一个 .aar 报(这个一个标准的 Android 存档).它由编译后的代码(比如 jar 文件或者 .so 文件)以及资源文件( manifest, res, assets )组成。 库工程也可以生成一个测试apk,可以独立于应用进行测试。 它有相同的引导任务( assembleDebug , assembleRelease ),所以

  • 嗨,我正在使用以下代码发送电子邮件: 现在,当我用我的“普通”gmail地址调用这个函数时,它就可以工作了: 所以上述方法是有效的。但当我尝试迁移到Gmail进行业务,并创建电子邮件地址时”me@mycompany.com“(连接到Gmail),我得到一个身份验证错误: 给我这个错误: 我怀疑我需要在我的谷歌应用控制台中设置一些东西,但我甚至不知道从哪里开始寻找信息。 有人能帮忙吗?谢谢

  • 本文向大家介绍Fortran 普通块,包括了Fortran 普通块的使用技巧和注意事项,需要的朋友参考一下 示例 在Fortran的早期形式中,用于创建从子例程和函数可见的全局变量存储的唯一机制是使用COMMON块机制。这允许变量序列成为名称并共享。 除了已命名的公共块之外,还可能有一个空白(未命名)的公共块。 可以声明一个空白的公共块,例如 而命名块variables可以像 作为一个完整的示例,