Работа с массивами и формальными параметрами переменной длины. (Java:38: ошибка: ожидается ".class")

Я не закончил работать над этой программой, поэтому знаю, что могут быть и другие ошибки. В настоящее время я получаю ожидаемую ошибку ".class", и по какой-то причине я не вижу этой ошибки.
Я использую jGrasp, и это проект для моего вступления в класс Java.

import java.util.*;
import static java.lang.Math.*;

public class Final_Project_Test_Process_With_Arrays
        //Final Project
        //Mean and Standard Deviation
        //13.04.27
{
    public static void main(String[] args) {
        //Allow for the user to input numbers
        Scanner kb = new Scanner(System.in);

        System.out.println("How many numbers?");
        int amount = kb.nextInt();
        double[] nums = new double[amount];

        for (int count = 0; count < nums.length; count++) {
            System.out.print("Enter number " + (count + 1) + ": ");
            nums[count] = kb.nextDouble();
        }

        System.out.print("The mean of ");
        for (int index = 0; index < nums.length; index++) {
            System.out.print(nums[index] + ", ");
        }
        System.out.printf("is " + "%.2f", calcMean(nums));
        System.out.println();


        System.out.print("The Standard Deviation of ");
        for (int counter = 0; counter < nums.length; counter++) {
            System.out.print(nums[counter] + ", ");
        }
        System.out.print("is " + calcStandardDeviation(amount, mean,double...nums));
        System.out.println();

    }

    public static double calcMean(double[] nums) {
        double sum = 0;
        double mean = 0;
        for (int index = 0; index < nums.length; index++) {
            sum = sum + nums[index];
        }

        if (nums.length != 0)
            mean = sum / nums.length;

        return mean;
    }

    public static double calcStandardDeviation(int amount, double mean, double... nums) {
        double squared = 0;
        double sum = 0;
        double radicand = 0;
        for (double num : nums) {
            squared = pow((num - mean), 2);
            sum = sum + squared;
        }
        radicand = sum / amount;

        double standardDeviation = sqrt(radicand);

        return standardDeviation;
    }
}

Я знаю, что есть простой ответ, и я провел поиски, чтобы помочь, но, будучи новичком в этом деле, мне понадобилось слишком много времени, чтобы применить ответы к другим подобным постам к моей собственной проблеме.

Сообщения об ошибках следующие:

Final_Project_Test_Process_With_Arrays.java:38: error: '.class' expected
    System.out.print("is " + calcStandardDeviation(amount, mean, double ... nums)); 
                                               ^                             
Final_Project_Test_Process_With_Arrays.java:38: error: ')' expected
    System.out.print("is " + calcStandardDeviation(amount, mean, double ... nums)); 
                                                  ^                             
Final_Project_Test_Process_With_Arrays.java:38: error: ';' expected
    System.out.print("is " + calcStandardDeviation(amount, mean, double ... nums)); 
                                                    ^                               
Final_Project_Test_Process_With_Arrays.java:38: error: illegal start of expression
    System.out.print("is " + calcStandardDeviation(amount, mean, double ... nums)); 
                                                     ^                               4 errors  

^ Всегда указывает на количество.

1 ответ

Решение

Я вижу проблему в том, как вы вызываете calcStandardDeviation метод -

System.out.print("is " + calcStandardDeviation(amount, mean, double ... nums));

Это на самом деле должно быть -

System.out.print("is " + calcStandardDeviation(amount, mean, nums));

Кроме того, вы не объявили переменную mean (что вы переходите к методу).

Другие вопросы по тегам