有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用用户输入和不同的方法计算平均值

所以,我的家庭作业是形成一个程序,提示用户在一行上输入五到十个数字,用空格分隔,计算这些数字的平均值,并向用户显示这些数字及其平均值

第一个方法不应接受任何参数,并返回一个由空格分隔的数字字符串

第二个方法应该将字符串作为其唯一参数,并返回一个double(平均值)

第三个方法应该将字符串和双精度作为参数,但没有返回值


我的问题是,我不知道如何在打印结果的同时用不同的方法计算平均值。我刚刚学会了一些方法,所以我还在努力想办法

这就是我目前的情况,我知道我有错误:

import java.util.Scanner;
public class CalculateAvg {

    public static void main(String[] args) {
        String userinput = getuserinput();
    }


    public static String getuserinput() {
        // Read inputs and change string to double
        Scanner in = new Scanner(System.in);
        String userinput;

        System.out.println("Please enter 5 to 10 numbers seperated by spaces: ");
        userinput = in.nextLine();
        double numbs = Double.parseDouble(userinput);
        return userinput;
    }
    // Problem is here. 
    public static double mySum(String sum, String userinput) {
        double avg = 0;
        double count = 0;

        double value = Double.parseDouble(sum);
        sum = sum + userinput;
        count++;
        avg = sum / count;

        return avg;
    }
}    

共 (2) 个答案

  1. # 1 楼答案

    如果你希望得到一个准确的密码,那么我不会给你

    为了获得5到10个参数,我认为可以创建一个数组,生成for循环(in.nextInt()将获得输入),并在if语句的循环内创建一个break语句

    If语句将检查停止的位置(将一些不在数组中的数字标记为参数的结尾)

    当你把它们设为int时,可以使用它

    如果你想把整行读成一行,那么把行字符串保存在str(或其他什么东西)中

    字符串[]nums=str.split(“”)

    此语句将使所有数字存储在字符串数组中

    要获得数字,请使用for循环和Double。parseDouble(nums[i])

    如果你对用不同的方法做这些事情感到恐慌,那么就使用全局变量

    我想这么多的帮助可能会帮你完成工作

  2. # 2 楼答案

    因为这是家庭作业,我不会给你代码,而是给你指出正确的方向

    首先,也是最重要的一点,遵循说明。第一种方法应该只获取用户输入;没别的了。所以,不要在那里做任何其他事情。一旦该方法返回,您将无法使用它

    第二种方法应该只有一个参数;那就不要用两个。将用户输入发送到该方法并获得平均值。要获得平均值,需要输入数字的总和和计数。但是你有一个String。因此,您需要将该字符串拆分为单独的数字,并将其解析为数字类型,求和,然后除以拆分输入后获得的计数

    我假设第三种方法将采用用户输入和计算出的双精度,并以干净的方式显示它们

    这些任务中的每一项都应该是独立的方法,因此类似于以下内容:

    input = getInput()
    average = getAverage(input)
    displayResults(input, average)