尝试显示用户从数组输入的数字



现在我浏览了许多其他问题以找到与我的相似问题,但由于某种原因,我不明白如何在计算平均值时获取用户输入的数组以显示。如果有与我类似的问题,请向我发送链接,以便我可以参考它。非常感谢。我希望它显示:

"请输入 5 个整数:25 43 12 5 7"

"您输入了:25 43 12 5 7,平均值为 __"

public class CalcAvg {
    public static void main(String[] args) {       
        double [] userinput = getArrayInfo();
        double average = CalculateAvg(userinput);
        getAvg(userinput, average);
    }
    public static double[] getArrayInfo() {
     Scanner in = new Scanner(System.in);
     final int NUM_ELEMENTS = 5;
     double[] userinput =new double[NUM_ELEMENTS];
     int i = 0;
     System.out.println("Please enter 5 integers: ");
      for (i = 0; i < NUM_ELEMENTS; ++i) {         
         userinput[i] = in.nextDouble();
      }     
     return userinput;
    }   
    public static double CalculateAvg(double[] userinput) {
        double sum = 0;
        double average = 0;
        for (int i = 0; i < userinput.length; i++) {
        sum = sum + userinput[i];        
    }        
        average = sum / userinput.length;
       return average;
    }
    public static void getAvg(double[] userinput, double average) {
       int i = 0;
      System.out.println("The average of the numbers " + userinput + " is " +average);  
    }
}

要生成以您想要的方式显示数组的String,可以创建一个方法来为您执行所有 String 操作(而不是重复您的代码)。通过使用 for 循环遍历数组,使用 StringBuilder 创建String

public String arrayToString(double[] input) {
    StringBuilder builder = new StringBuilder();  // declare this outside of the loop
    for (double dub : input) {
        builder.append(dub + " ");
    }
    return builder.toString().trim();  // get rid of trailing spaces
}

然后,要实现这一点,请将行System.out.println("The average of the numbers " + userinput + " is " +average)更改为 System.out.println("The average of the numbers " + arrayToString(userinput) + " is " + average)

此外,按照命名约定,CalculateAvg()将是calculateAvg()。您还可以使用带有int x : userinput的"增强型 for 循环"来循环 for 循环,而不是您当前使用的计数变量。

所有类都继承自 Object,因此具有 toString() 方法。当您尝试打印数组时,它会调用 toString() 方法,该方法返回对象的类名表示形式,然后返回"@",后跟其哈希代码。

解决方案是:

System.out.println(java.util.Arrays.toString(arr));

或者循环遍历元素以逐个打印它们。

相关内容

  • 没有找到相关文章

最新更新