lundi 9 mars 2015

Error with applying data type in method to variables in main tester class



How can I get this to calculate properties about arrays of doubles. If everything else is an int inside, would that still as an array of doubles? Or is it still an array of doubles anyway because of the method type? Here is my class. Thanks so much!



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

public class Statistics {
private double min;
private double max;
private double mean;
private double median;
private double deviation;
private double mode;

public static double findMin(int[] array){
int min = array[0];
for(int i=1;i<array.length;i++){
if(array[i] < min){
min = array[i];
}
}
return min;

}

public static double findMax(int[] array){
int max = array[0];
for(int i=1;i<array.length;i++){
if(array[i]>max){
max=array[i];
}
}
return max;

}

public static double calcMean(int[] n){
int sum=0;
for (int i=0; i<n.length; i++){
sum+= n[i];
}
return sum/n.length;
}

public static double calcMedian(int[] n){
int middle = n.length/2;
if (n.length%2==1){
return n[middle];
} else {
return (n[middle]+n[middle])/2;
}
}

public static double calcDeviation(int[] n){
int mean = (int)calcMean(n);
int squareSum = 0;

for (int i = 0; i < n.length; i++) {
squareSum += Math.pow(n[i] - mean, 2);
}
return Math.sqrt((squareSum) / (n.length - 1));

}

public static double calcMode(int n[]){
int value=0; int max=0;

for (int i=0;i<n.length;++i){
int count=0;
for (int j=0; j<n.length; ++j){
if (n[j]==n[i]) ++count;
}
if (count>max){
max=count;
value=n[i];

}
}

return value;
}


}


Here is my main method.



import java.util.*;

public class StatisticsTester {

public static void main(String[] args) {


Statistics test = new Statistics();
Scanner input = new Scanner(System.in);
//Read user input.
System.out.print("How many numbers do you want to enter?: ");
int num = input.nextInt();
double array[] = new double[num];
System.out.println("Enter the " + num + "numbers now.");
for (int i = 0; i < array.length; i++ )
{
array[i] = input.nextInt();
}
System.out.print("Here is the minimum, ");
System.out.print("maximum, mean, median, ");
System.out.println("mode, and standard deviation: ");
System.out.print(test.findMin(num) +", " + test.findMax(num));
System.out.print(", "+ test.calcMean(num) +", ");
System.out.print(test.calcMedian(num) +", ");
System.out.print(test.calcMode(num) +", ");
System.out.print(test.calcDeviation(num));

}
}


These are the errors when it compiles.



StatisticsTester.java:25: findMin(int[]) in Statistics cannot be applied to (int)
System.out.print(test.findMin(num) +", " + test.findMax(num));
^
StatisticsTester.java:25: findMax(int[]) in Statistics cannot be applied to (int)
System.out.print(test.findMin(num) +", " + test.findMax(num));
^
StatisticsTester.java:26: calcMean(int[]) in Statistics cannot be applied to (int)
System.out.print(", "+ test.calcMean(num) +", ");
^
StatisticsTester.java:27: calcMedian(int[]) in Statistics cannot be applied to (int)
System.out.print(test.calcMedian(num) +", ");
^
StatisticsTester.java:28: calcMode(int[]) in Statistics cannot be applied to (int)
System.out.print(test.calcMode(num) +", ");
^
StatisticsTester.java:29: calcDeviation(int[]) in Statistics cannot be applied to (int)
System.out.print(test.calcDeviation(num));
^
6 errors



Aucun commentaire:

Enregistrer un commentaire