我正在尝试创建3种方法来计算随机数组的和和和平均值,然后输出结果。
我试图得到一个类似-javarandomArray 5 9 7 2 1 4 sum:23 mean:4.6的输出
但是我得到了“用法:java随机数组”。示例:java randomarray 5“
如果你能在我的代码中发现错误并帮助获得这个输出。
public class RandomArray {
private int[] numbers; //instance variable
/**
* Constructor
*
*@param size The size of the array
*/
public RandomArray(int size){
numbers = new int[size];
for(int i=0; i<numbers.length;i++){
numbers[i] = (int)(Math.random()*10); // a random number between 0-9
}
}
/**
* a method to print the array elements
*/
public void printArray() {
for (int i = 0; i < numbers.length; i++)
System.out.print(i + " ");
}
/**
* A method to calculate the sum of all elements
*
*@return The sum
*/
public int calSum(){
int sum = 0;
for (int value : numbers) {
sum += value;
}
return sum;
}
/**
* A method to calculate the mean of all elements
*
*@return The mean
*/
public double calMean() {
int sum = calSum();
int length = numbers.length;
return (double) sum / length;
}
/**
* a method to print the array elements in reverse order
*/
public void printReverse(){
}
/**
* A main method to test
*/
public static void main(String[] args) {
// Check to see if the user has actually sent a paramter to the method
if (args.length != 1){
System.out.println("Usage: java RandomArray <NUM>. Example: java RandomArray 5");
System.exit(-1);
}
// Create an instance of the class
RandomArray test = new RandomArray(Integer.parseInt(args[0]));
// Print the array
test.printArray();
// Calculate the sum of all the values in the array and print it
System.out.println("Sum: "+ test.calSum());
// Calculate the mean of all the values in the array and print it
System.out.println("Mean: "+ test.calMean());
System.out.print("Reverse: ");
test.printReverse();
}
}
2条答案
按热度按时间9rbhqvlz1#
方法“printarray(int sum)”有错误。当调用该方法时,将获取一个不需要的参数和。然后尝试创建第二个名为sum的局部变量。这是不可能的,因为您已经有一个名为sum的参数。
在for循环中初始化另一个名为sum的局部变量。你需要一个不同的变量名,因为你只需要它来计算循环。
因此,删除参数sum并重命名for循环中使用的变量。
这应该起作用:
bqucvtff2#
我们先来看看你的求和法:
为什么这个方法接受一个参数?你只要在下一行重新申报就行了。
否则看起来不错。
下面是一个清理过的版本:
接下来,平均值:
再说一遍,为什么是参数?
回想一下我们如何计算平均值:将所有元素相加,然后除以元素数。
我们已经有了计算和的方法,所以我们可以用它。
注意使用
(double)
在这里。没有它,cal / length
将是整数除法,结果将四舍五入到最接近的整数。