Цель состоит в том, чтобы вычислить и вывести среднее значение, медиану, минимум, максимум, диапазон и асимметрию. Нам пришлось сохранить файл в пакете под названием silvestri, а затем импортировать его в программу, чтобы прочитать числа и выполнить все математические функции, описанные выше.
В строках 57 и 70 есть ошибка «the тип выражения должен быть типом массива, но он разрешается как int"
Строка 35 содержит ошибку "этот метод должен возвращать результат типа double" и другое сообщение об ошибке "диапазон метода (double []) из статистики типов никогда не используется локально.
В строке 91 имеется ошибка: «мертвый код».
Она также выводит среднее значение. дважды, но не другие мои операторы sytem.out.println////(). Что я делаю не так?
Это мой код:
Код: Выделить всё
import java.util.Arrays;
import java.util.Scanner;
import silvestri.DataStore;
public class Statistics {
private final static String TITLE = "Statistics on an Array V1.0";
private final static String CONTINUE_PROMPT = "Do this again? [y/N] ";
//**********************************************
// Put as many methods you need here
private static double mean(double[] x) {
if (x.length == 0) {
return Double.NaN;`your text`
}
double sum = 0;
for (int i = 0; i < x.length; i++)
sum += x[i];
double mean = sum / x.length;
System.out.println("The mean is: " + mean);
return mean;
}
private static double median (double[] x) {
double median = 0;
Arrays.sort(x);
if (x.length % 2 != 0) {
median = x[x.length / 2];
System.out.println("The median is: " + median);
return median;
}
else {
median = (x[(x.length - 1) / 2] + x[x.length / 2]) / 2.0;
System.out.println("The median is: " + median);
return median;
}
}
private static double maximum (double[] x) {
double maximum = x[0];
double minimum;
for (int i = 1; i < x.length; i++) {
if (x.length[i] > maximum)
{
maximum = x[i];
}
}
System.out.println("The maximum is: " + maximum);
return maximum;
}
private static double minimum (double[] x) {
double maximum = x[0];
double minimum;
for (int i = 1; i < x.length; i++) {
if (x.length[i] < minimum)
{ minimum = x[i];
}
}
System.out.println("The minimum is: " + minimum);
return minimum;
}
private static double range (double[] x) {
//initializing maximum and minimum
double maximum = x[0];
double minimum = x[0];
double range = 0;
for (int i = 1; i < x.length; i++) {
if (x[i] > maximum) {
maximum = x[i];
}
if (x[i] < minimum) {
minimum = x[i];
}
System.out.println("The range is: " + range);
return range = maximum - minimum;
}
}
https://stackoverflow.com/
public static String skew (double[] x) {
double sum = 0;
double mean;
double median = median(x);
for (double num : x) {
sum += num;
}
mean = sum / x.length;
double difference = Math.abs(mean-median);
if (mean > median) {
return "The data is right skewed";
}
// checking if the absolute difference is within 10E-6
else if (Math.abs(difference) < 10E-6) {
return "The data has no skew";
}
else {
System.out.println("The data is left skewed");
}
}
//**********************************************
// Start your logic coding in the process method
private static void process(Scanner input, String args[]) throws Exception {
double data[] = DataStore.getData();
double mean = mean(data);
// write a method called mean that's gonna pass the array doubles & it will return average
double ave = mean(data);
}
//**********************************************
// Do not change the doThisAgain method
private static boolean doThisAgain(Scanner input, String prompt) {
System.out.print(prompt);
String doOver = input.nextLine();
return doOver.trim().equalsIgnoreCase("Y");
}
//**********************************************
// Do not change the main method
public static void main(String args[]) throws Exception {
System.out.println("Welcome to " + TITLE);
Scanner input = new Scanner(System.in);
do {
process(input, args);
} while (doThisAgain(input, CONTINUE_PROMPT));
input.close();
System.out.println("Thank you for using " + TITLE);
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... r-messages
Мобильная версия